/*! * FullCalendar v3.1.0 * Docs & License: http://fullcalendar.io/ * (c) 2016 Adam Shaw */ !(function (t) { 'function' == typeof define && define.amd ? define(['jquery', 'moment'], t) : 'object' == typeof exports ? (module.exports = t(require('jquery'), require('moment'))) : t(jQuery, moment); })(function (t, e) { function n(t) { return q(t, $t); } function i(t, e) { e.left && t.css({ 'border-left-width': 1, 'margin-left': e.left - 1 }), e.right && t.css({ 'border-right-width': 1, 'margin-right': e.right - 1 }); } function r(t) { t.css({ 'margin-left': '', 'margin-right': '', 'border-left-width': '', 'border-right-width': '' }); } function s() { t('body').addClass('fc-not-allowed'); } function o() { t('body').removeClass('fc-not-allowed'); } function l(e, n, i) { var r = Math.floor(n / e.length), s = Math.floor(n - r * (e.length - 1)), o = [], l = [], u = [], c = 0; a(e), e.each(function (n, i) { var a = n === e.length - 1 ? s : r, d = t(i).outerHeight(!0); d < a ? (o.push(i), l.push(d), u.push(t(i).height())) : (c += d); }), i && ((n -= c), (r = Math.floor(n / o.length)), (s = Math.floor(n - r * (o.length - 1)))), t(o).each(function (e, n) { var i = e === o.length - 1 ? s : r, a = l[e], c = u[e], d = i - (a - c); a < i && t(n).height(d); }); } function a(t) { t.height(''); } function u(e) { var n = 0; return ( e.find('> *').each(function (e, i) { var r = t(i).outerWidth(); r > n && (n = r); }), n++, e.width(n), n ); } function c(t, e) { var n, i = t.add(e); return i.css({ position: 'relative', left: -1 }), (n = t.outerHeight() - e.outerHeight()), i.css({ position: '', left: '' }), n; } function d(e) { var n = e.css('position'), i = e .parents() .filter(function () { var e = t(this); return /(auto|scroll)/.test(e.css('overflow') + e.css('overflow-y') + e.css('overflow-x')); }) .eq(0); return 'fixed' !== n && i.length ? i : t(e[0].ownerDocument || document); } function h(t, e) { var n = t.offset(), i = n.left - (e ? e.left : 0), r = n.top - (e ? e.top : 0); return { left: i, right: i + t.outerWidth(), top: r, bottom: r + t.outerHeight() }; } function f(t, e) { var n = t.offset(), i = p(t), r = n.left + y(t, 'border-left-width') + i.left - (e ? e.left : 0), s = n.top + y(t, 'border-top-width') + i.top - (e ? e.top : 0); return { left: r, right: r + t[0].clientWidth, top: s, bottom: s + t[0].clientHeight }; } function g(t, e) { var n = t.offset(), i = n.left + y(t, 'border-left-width') + y(t, 'padding-left') - (e ? e.left : 0), r = n.top + y(t, 'border-top-width') + y(t, 'padding-top') - (e ? e.top : 0); return { left: i, right: i + t.width(), top: r, bottom: r + t.height() }; } function p(t) { var e = t.innerWidth() - t[0].clientWidth, n = { left: 0, right: 0, top: 0, bottom: t.innerHeight() - t[0].clientHeight }; return v() && 'rtl' == t.css('direction') ? (n.left = e) : (n.right = e), n; } function v() { return null === Qt && (Qt = m()), Qt; } function m() { var e = t('
') .css({ position: 'absolute', top: -1e3, left: 0, border: 0, padding: 0, overflow: 'scroll', direction: 'rtl' }) .appendTo('body'), n = e.children(), i = n.offset().left > e.offset().left; return e.remove(), i; } function y(t, e) { return parseFloat(t.css(e)) || 0; } function S(t) { return 1 == t.which && !t.ctrlKey; } function w(t) { if (void 0 !== t.pageX) return t.pageX; var e = t.originalEvent.touches; return e ? e[0].pageX : void 0; } function E(t) { if (void 0 !== t.pageY) return t.pageY; var e = t.originalEvent.touches; return e ? e[0].pageY : void 0; } function b(t) { return /^touch/.test(t.type); } function D(t) { t.addClass('fc-unselectable').on('selectstart', T); } function T(t) { t.preventDefault(); } function C(t) { return !!window.addEventListener && (window.addEventListener('scroll', t, !0), !0); } function H(t) { return !!window.removeEventListener && (window.removeEventListener('scroll', t, !0), !0); } function R(t, e) { var n = { left: Math.max(t.left, e.left), right: Math.min(t.right, e.right), top: Math.max(t.top, e.top), bottom: Math.min(t.bottom, e.bottom), }; return n.left < n.right && n.top < n.bottom && n; } function x(t, e) { return { left: Math.min(Math.max(t.left, e.left), e.right), top: Math.min(Math.max(t.top, e.top), e.bottom) }; } function I(t) { return { left: (t.left + t.right) / 2, top: (t.top + t.bottom) / 2 }; } function k(t, e) { return { left: t.left - e.left, top: t.top - e.top }; } function L(e) { var n, i, r = [], s = []; for ( 'string' == typeof e ? (s = e.split(/\s*,\s*/)) : 'function' == typeof e ? (s = [e]) : t.isArray(e) && (s = e), n = 0; n < s.length; n++ ) (i = s[n]), 'string' == typeof i ? r.push('-' == i.charAt(0) ? { field: i.substring(1), order: -1 } : { field: i, order: 1 }) : 'function' == typeof i && r.push({ func: i }); return r; } function M(t, e, n) { var i, r; for (i = 0; i < n.length; i++) if ((r = B(t, e, n[i]))) return r; return 0; } function B(t, e, n) { return n.func ? n.func(t, e) : z(t[n.field], e[n.field]) * (n.order || 1); } function z(e, n) { return e || n ? null == n ? -1 : null == e ? 1 : 'string' === t.type(e) || 'string' === t.type(n) ? String(e).localeCompare(String(n)) : e - n : 0; } function F(t, e) { var n, i, r, s, o = t.start, l = t.end, a = e.start, u = e.end; if (l > a && o < u) return ( o >= a ? ((n = o.clone()), (r = !0)) : ((n = a.clone()), (r = !1)), l <= u ? ((i = l.clone()), (s = !0)) : ((i = u.clone()), (s = !1)), { start: n, end: i, isStart: r, isEnd: s } ); } function N(t, n) { return e.duration({ days: t.clone().stripTime().diff(n.clone().stripTime(), 'days'), ms: t.time() - n.time() }); } function G(t, n) { return e.duration({ days: t.clone().stripTime().diff(n.clone().stripTime(), 'days') }); } function O(t, n, i) { return e.duration(Math.round(t.diff(n, i, !0)), i); } function A(t, e) { var n, i, r; for (n = 0; n < Kt.length && ((i = Kt[n]), (r = V(i, t, e)), !(r >= 1 && ot(r))); n++); return i; } function V(t, n, i) { return null != i ? i.diff(n, t, !0) : e.isDuration(n) ? n.as(t) : n.end.diff(n.start, t, !0); } function P(t, e, n) { var i; return W(n) ? (e - t) / n : ((i = n.asMonths()), Math.abs(i) >= 1 && ot(i) ? e.diff(t, 'months', !0) / i : e.diff(t, 'days', !0) / n.asDays()); } function _(t, e) { var n, i; return W(t) || W(e) ? t / e : ((n = t.asMonths()), (i = e.asMonths()), Math.abs(n) >= 1 && ot(n) && Math.abs(i) >= 1 && ot(i) ? n / i : t.asDays() / e.asDays()); } function Y(t, n) { var i; return W(t) ? e.duration(t * n) : ((i = t.asMonths()), Math.abs(i) >= 1 && ot(i) ? e.duration({ months: i * n }) : e.duration({ days: t.asDays() * n })); } function W(t) { return Boolean(t.hours() || t.minutes() || t.seconds() || t.milliseconds()); } function U(t) { return '[object Date]' === Object.prototype.toString.call(t) || t instanceof Date; } function j(t) { return /^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(t); } function q(t, e) { var n, i, r, s, o, l, a = {}; if (e) for (n = 0; n < e.length; n++) { for (i = e[n], r = [], s = t.length - 1; s >= 0; s--) if (((o = t[s][i]), 'object' == typeof o)) r.unshift(o); else if (void 0 !== o) { a[i] = o; break; } r.length && (a[i] = q(r)); } for (n = t.length - 1; n >= 0; n--) { l = t[n]; for (i in l) i in a || (a[i] = l[i]); } return a; } function Z(t) { var e = function () {}; return (e.prototype = t), new e(); } function $(t, e) { for (var n in t) Q(t, n) && (e[n] = t[n]); } function Q(t, e) { return Jt.call(t, e); } function X(e) { return /undefined|null|boolean|number|string/.test(t.type(e)); } function K(e, n, i) { if ((t.isFunction(e) && (e = [e]), e)) { var r, s; for (r = 0; r < e.length; r++) s = e[r].apply(n, i) || s; return s; } } function J() { for (var t = 0; t < arguments.length; t++) if (void 0 !== arguments[t]) return arguments[t]; } function tt(t) { return (t + '') .replace(/&/g, '&') .replace(//g, '>') .replace(/'/g, ''') .replace(/"/g, '"') .replace(/\n/g, '
'); } function et(t) { return t.replace(/&.*?;/g, ''); } function nt(e) { var n = []; return ( t.each(e, function (t, e) { null != e && n.push(t + ':' + e); }), n.join(';') ); } function it(e) { var n = []; return ( t.each(e, function (t, e) { null != e && n.push(t + '="' + tt(e) + '"'); }), n.join(' ') ); } function rt(t) { return t.charAt(0).toUpperCase() + t.slice(1); } function st(t, e) { return t - e; } function ot(t) { return t % 1 === 0; } function lt(t, e) { var n = t[e]; return function () { return n.apply(t, arguments); }; } function at(t, e, n) { var i, r, s, o, l, a = function () { var u = +new Date() - o; u < e ? (i = setTimeout(a, e - u)) : ((i = null), n || ((l = t.apply(s, r)), (s = r = null))); }; return function () { (s = this), (r = arguments), (o = +new Date()); var u = n && !i; return i || (i = setTimeout(a, e)), u && ((l = t.apply(s, r)), (s = r = null)), l; }; } function ut(n, i, r) { var s, o, l, a, u = n[0], c = 1 == n.length && 'string' == typeof u; return ( e.isMoment(u) || U(u) || void 0 === u ? (a = e.apply(null, n)) : ((s = !1), (o = !1), c ? te.test(u) ? ((u += '-01'), (n = [u]), (s = !0), (o = !0)) : (l = ee.exec(u)) && ((s = !l[5]), (o = !0)) : t.isArray(u) && (o = !0), (a = i || s ? e.utc.apply(e, n) : e.apply(null, n)), s ? ((a._ambigTime = !0), (a._ambigZone = !0)) : r && (o ? (a._ambigZone = !0) : c && a.utcOffset(u))), (a._fullCalendar = !0), a ); } function ct(t, e) { return ie.format.call(t, e); } function dt(t, e) { return ht(t, mt(e)); } function ht(t, e) { var n, i = ''; for (n = 0; n < e.length; n++) i += ft(t, e[n]); return i; } function ft(t, e) { var n, i; return 'string' == typeof e ? e : (n = e.token) ? se[n] ? se[n](t) : ct(t, n) : e.maybe && ((i = ht(t, e.maybe)), i.match(/[1-9]/)) ? i : ''; } function gt(t, e, n, i, r) { var s; return ( (t = qt.moment.parseZone(t)), (e = qt.moment.parseZone(e)), (s = t.localeData()), (n = s.longDateFormat(n) || n), (i = i || ' - '), pt(t, e, mt(n), i, r) ); } function pt(t, e, n, i, r) { var s, o, l, a, u = t.clone().stripZone(), c = e.clone().stripZone(), d = '', h = '', f = '', g = '', p = ''; for (o = 0; o < n.length && ((s = vt(t, e, u, c, n[o])), s !== !1); o++) d += s; for (l = n.length - 1; l > o && ((s = vt(t, e, u, c, n[l])), s !== !1); l--) h = s + h; for (a = o; a <= l; a++) (f += ft(t, n[a])), (g += ft(e, n[a])); return (f || g) && (p = r ? g + i + f : f + i + g), d + p + h; } function vt(t, e, n, i, r) { var s, o; return 'string' == typeof r ? r : !!((s = r.token) && ((o = oe[s.charAt(0)]), o && n.isSame(i, o))) && ct(t, s); } function mt(t) { return t in le ? le[t] : (le[t] = yt(t)); } function yt(t) { for (var e, n = [], i = /\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g; (e = i.exec(t)); ) e[1] ? n.push(e[1]) : e[2] ? n.push({ maybe: yt(e[2]) }) : e[3] ? n.push({ token: e[3] }) : e[5] && n.push(e[5]); return n; } function St() {} function wt(t, e) { var n; return ( Q(e, 'constructor') && (n = e.constructor), 'function' != typeof n && (n = e.constructor = function () { t.apply(this, arguments); }), (n.prototype = Z(t.prototype)), $(e, n.prototype), $(t, n), n ); } function Et(t, e) { $(e, t.prototype); } function bt(e) { var n = t.Deferred(), i = n.promise(); if ( ('function' == typeof e && e( function (t) { bt.immediate && (i._value = t), n.resolve(t); }, function () { n.reject(); } ), bt.immediate) ) { var r = i.then; i.then = function (t, e) { var n = i.state(); if ('resolved' === n) { if ('function' == typeof t) return bt.resolve(t(i._value)); } else if ('rejected' === n && 'function' == typeof e) return e(), i; return r.call(i, t, e); }; } return i; } function Dt(t) { function e(t) { return new bt(function (e) { var i = function () { bt.resolve(t()) .then(e) .then(function () { n.shift(), n.length && n[0](); }); }; n.push(i), 1 === n.length && i(); }); } var n = []; (this.add = 'number' == typeof t ? at(e, t) : e), (this.addQuickly = e); } function Tt(t, e) { return (!t && !e) || (!(!t || !e) && t.component === e.component && Ct(t, e) && Ct(e, t)); } function Ct(t, e) { for (var n in t) if (!/^(component|left|right|top|bottom)$/.test(n) && t[n] !== e[n]) return !1; return !0; } function Ht(t) { return { start: t.start.clone(), end: t.end ? t.end.clone() : null, allDay: t.allDay }; } function Rt(t) { var e = It(t); return 'background' === e || 'inverse-background' === e; } function xt(t) { return 'inverse-background' === It(t); } function It(t) { return J((t.source || {}).rendering, t.rendering); } function kt(t) { var e, n, i = {}; for (e = 0; e < t.length; e++) (n = t[e]), (i[n._id] || (i[n._id] = [])).push(n); return i; } function Lt(t, e) { return t.start - e.start; } function Mt(n) { var i, r, s, o, l = qt.dataAttrPrefix; return ( l && (l += '-'), (i = n.data(l + 'event') || null), i && ((i = 'object' == typeof i ? t.extend({}, i) : {}), (r = i.start), null == r && (r = i.time), (s = i.duration), (o = i.stick), delete i.start, delete i.time, delete i.duration, delete i.stick), null == r && (r = n.data(l + 'start')), null == r && (r = n.data(l + 'time')), null == s && (s = n.data(l + 'duration')), null == o && (o = n.data(l + 'stick')), (r = null != r ? e.duration(r) : null), (s = null != s ? e.duration(s) : null), (o = Boolean(o)), { eventProps: i, startTime: r, duration: s, stick: o } ); } function Bt(t, e) { var n, i; for (n = 0; n < e.length; n++) if (((i = e[n]), i.leftCol <= t.rightCol && i.rightCol >= t.leftCol)) return !0; return !1; } function zt(t, e) { return t.leftCol - e.leftCol; } function Ft(t) { var e, n, i, r = []; for (e = 0; e < t.length; e++) { for (n = t[e], i = 0; i < r.length && Ot(n, r[i]).length; i++); (n.level = i), (r[i] || (r[i] = [])).push(n); } return r; } function Nt(t) { var e, n, i, r, s; for (e = 0; e < t.length; e++) for (n = t[e], i = 0; i < n.length; i++) for (r = n[i], r.forwardSegs = [], s = e + 1; s < t.length; s++) Ot(r, t[s], r.forwardSegs); } function Gt(t) { var e, n, i = t.forwardSegs, r = 0; if (void 0 === t.forwardPressure) { for (e = 0; e < i.length; e++) (n = i[e]), Gt(n), (r = Math.max(r, 1 + n.forwardPressure)); t.forwardPressure = r; } } function Ot(t, e, n) { n = n || []; for (var i = 0; i < e.length; i++) At(t, e[i]) && n.push(e[i]); return n; } function At(t, e) { return t.bottom > e.top && t.top < e.bottom; } function Vt(t) { this.items = t || []; } function Pt(e, n) { function i(t) { n = t; } function r() { var i = n.layout; (p = e.options.theme ? 'ui' : 'fc'), i ? (g ? g.empty() : (g = this.el = t("
")), g.append(o('left')).append(o('right')).append(o('center')).append('
')) : s(); } function s() { g && (g.remove(), (g = f.el = null)); } function o(i) { var r = t('
'), s = n.layout[i]; return ( s && t.each(s.split(' '), function (n) { var i, s = t(), o = !0; t.each(this.split(','), function (n, i) { var r, l, a, u, c, d, h, f, g, m; 'title' == i ? ((s = s.add(t('

 

'))), (o = !1)) : ((r = (e.options.customButtons || {})[i]) ? ((a = function (t) { r.click && r.click.call(m[0], t); }), (u = ''), (c = r.text)) : (l = e.getViewSpec(i)) ? ((a = function () { e.changeView(i); }), v.push(i), (u = l.buttonTextOverride), (c = l.buttonTextDefault)) : e[i] && ((a = function () { e[i](); }), (u = (e.overrides.buttonText || {})[i]), (c = e.options.buttonText[i])), a && ((d = r ? r.themeIcon : e.options.themeButtonIcons[i]), (h = r ? r.icon : e.options.buttonIcons[i]), (f = u ? tt(u) : d && e.options.theme ? "" : h && !e.options.theme ? "" : tt(c)), (g = ['fc-' + i + '-button', p + '-button', p + '-state-default']), (m = t('') .click(function (t) { m.hasClass(p + '-state-disabled') || (a(t), (m.hasClass(p + '-state-active') || m.hasClass(p + '-state-disabled')) && m.removeClass(p + '-state-hover')); }) .mousedown(function () { m.not('.' + p + '-state-active') .not('.' + p + '-state-disabled') .addClass(p + '-state-down'); }) .mouseup(function () { m.removeClass(p + '-state-down'); }) .hover( function () { m.not('.' + p + '-state-active') .not('.' + p + '-state-disabled') .addClass(p + '-state-hover'); }, function () { m.removeClass(p + '-state-hover').removeClass(p + '-state-down'); } )), (s = s.add(m)))); }), o && s .first() .addClass(p + '-corner-left') .end() .last() .addClass(p + '-corner-right') .end(), s.length > 1 ? ((i = t('
')), o && i.addClass('fc-button-group'), i.append(s), r.append(i)) : r.append(s); }), r ); } function l(t) { g && g.find('h2').text(t); } function a(t) { g && g.find('.fc-' + t + '-button').addClass(p + '-state-active'); } function u(t) { g && g.find('.fc-' + t + '-button').removeClass(p + '-state-active'); } function c(t) { g && g .find('.fc-' + t + '-button') .prop('disabled', !0) .addClass(p + '-state-disabled'); } function d(t) { g && g .find('.fc-' + t + '-button') .prop('disabled', !1) .removeClass(p + '-state-disabled'); } function h() { return v; } var f = this; (f.setToolbarOptions = i), (f.render = r), (f.removeElement = s), (f.updateTitle = l), (f.activateButton = a), (f.deactivateButton = u), (f.disableButton = c), (f.enableButton = d), (f.getViewsWithButtons = h), (f.el = null); var g, p, v = []; } function _t(n, i) { function r(t) { t._locale = Y; } function s() { q ? a() && (f(), u()) : o(); } function o() { n.addClass('fc'), n.on('click.fc', 'a[data-goto]', function (e) { var n = t(this), i = n.data('goto'), r = _.moment(i.date), s = i.type, o = Q.opt('navLink' + rt(s) + 'Click'); 'function' == typeof o ? o(r, e) : ('string' == typeof o && (s = o), B(r, s)); }), _.bindOption('theme', function (t) { ($ = t ? 'ui' : 'fc'), n.toggleClass('ui-widget', t), n.toggleClass('fc-unthemed', !t); }), _.bindOptions(['isRTL', 'locale'], function (t) { n.toggleClass('fc-ltr', !t), n.toggleClass('fc-rtl', t); }), (q = t("
").prependTo(n)); var e = y(); (W = new Vt(e)), (U = _.header = e[0]), (j = _.footer = e[1]), E(), b(), u(_.options.defaultView), _.options.handleWindowResize && ((K = at(v, _.options.windowResizeDelay)), t(window).resize(K)); } function l() { Q && Q.removeElement(), W.proxyCall('removeElement'), q.remove(), n.removeClass('fc fc-ltr fc-rtl fc-unthemed ui-widget'), n.off('.fc'), K && t(window).unbind('resize', K); } function a() { return n.is(':visible'); } function u(e, n) { nt++; var i = Q && e && Q.type !== e; i && (F(), c()), !Q && e && ((Q = _.view = et[e] || (et[e] = _.instantiateView(e))), Q.setElement(t("
").appendTo(q)), W.proxyCall('activateButton', e)), Q && ((J = Q.massageCurrentDate(J)), (Q.isDateSet && J >= Q.intervalStart && J < Q.intervalEnd) || (a() && (n && Q.captureInitialScroll(n), Q.setDate(J, n), n && Q.releaseScroll(), D()))), i && N(), nt--; } function c() { W.proxyCall('deactivateButton', Q.type), Q.removeElement(), (Q = _.view = null); } function d() { nt++, F(); var t = Q.type, e = Q.queryScroll(); c(), f(), u(t, e), N(), nt--; } function h(t) { if (a()) return t && g(), nt++, Q.updateSize(!0), nt--, !0; } function f() { a() && g(); } function g() { var t = _.options.contentHeight, e = _.options.height; X = 'number' == typeof t ? t : 'function' == typeof t ? t() : 'number' == typeof e ? e - p() : 'function' == typeof e ? e() - p() : 'parent' === e ? n.parent().height() - p() : Math.round(q.width() / Math.max(_.options.aspectRatio, 0.5)); } function p() { return W.items.reduce(function (t, e) { var n = e.el ? e.el.outerHeight(!0) : 0; return t + n; }, 0); } function v(t) { !nt && t.target === window && Q.start && h(!0) && Q.publiclyTrigger('windowResize', tt); } function m() { a() && _.reportEventChange(); } function y() { return [new Pt(_, S()), new Pt(_, w())]; } function S() { return { extraClasses: 'fc-header-toolbar', layout: _.options.header }; } function w() { return { extraClasses: 'fc-footer-toolbar', layout: _.options.footer }; } function E() { U.setToolbarOptions(S()), U.render(), U.el && n.prepend(U.el); } function b() { j.setToolbarOptions(w()), j.render(), j.el && n.append(j.el); } function D() { var t = _.getNow(); t >= Q.intervalStart && t < Q.intervalEnd ? W.proxyCall('disableButton', 'today') : W.proxyCall('enableButton', 'today'); } function T(t, e) { Q.select(_.buildSelectSpan.apply(_, arguments)); } function C() { Q && Q.unselect(); } function H() { (J = Q.computePrevDate(J)), u(); } function R() { (J = Q.computeNextDate(J)), u(); } function x() { J.add(-1, 'years'), u(); } function I() { J.add(1, 'years'), u(); } function k() { (J = _.getNow()), u(); } function L(t) { (J = _.moment(t).stripZone()), u(); } function M(t) { J.add(e.duration(t)), u(); } function B(t, e) { var n; (e = e || 'day'), (n = _.getViewSpec(e) || _.getUnitViewSpec(e)), (J = t.clone()), u(n ? n.type : null); } function z() { return _.applyTimezone(J); } function F() { it++ || q.css({ width: '100%', height: q.height(), overflow: 'hidden' }); } function N() { --it || q.css({ width: '', height: '', overflow: '' }); } function G() { return _; } function O() { return Q; } function A(t, e) { var n; if ('string' == typeof t) { if (void 0 === e) return _.options[t]; (n = {}), (n[t] = e), V(n); } else 'object' == typeof t && V(t); } function V(t) { var e, n = 0; for (e in t) _.dynamicOverrides[e] = t[e]; (_.viewSpecCache = {}), _.populateOptionsHash(); for (e in t) _.triggerOptionHandlers(e), n++; if (1 === n) { if ('height' === e || 'contentHeight' === e || 'aspectRatio' === e) return void h(!0); if ('defaultDate' === e) return; if ('businessHours' === e) return void (Q && (Q.unrenderBusinessHours(), Q.renderBusinessHours())); if ('timezone' === e) return _.rezoneArrayEventSources(), void _.refetchEvents(); } E(), b(), (et = {}), d(); } function P(t, e) { var n = Array.prototype.slice.call(arguments, 2); if (((e = e || tt), this.triggerWith(t, e, n), _.options[t])) return _.options[t].apply(e, n); } var _ = this; (_.render = s), (_.destroy = l), (_.rerenderEvents = m), (_.changeView = u), (_.select = T), (_.unselect = C), (_.prev = H), (_.next = R), (_.prevYear = x), (_.nextYear = I), (_.today = k), (_.gotoDate = L), (_.incrementDate = M), (_.zoomTo = B), (_.getDate = z), (_.getCalendar = G), (_.getView = O), (_.option = A), (_.publiclyTrigger = P), (_.dynamicOverrides = {}), (_.viewSpecCache = {}), (_.optionHandlers = {}), (_.overrides = t.extend({}, i)), _.populateOptionsHash(); var Y; _.bindOptions( ['locale', 'monthNames', 'monthNamesShort', 'dayNames', 'dayNamesShort', 'firstDay', 'weekNumberCalculation'], function (t, e, n, i, s, o, l) { if ( ('iso' === l && (l = 'ISO'), (Y = Z(Wt(t))), e && (Y._months = e), n && (Y._monthsShort = n), i && (Y._weekdays = i), s && (Y._weekdaysShort = s), null == o && 'ISO' === l && (o = 1), null != o) ) { var a = Z(Y._week); (a.dow = o), (Y._week = a); } ('ISO' !== l && 'local' !== l && 'function' != typeof l) || (Y._fullCalendar_weekCalc = l), J && r(J); } ), (_.defaultAllDayEventDuration = e.duration(_.options.defaultAllDayEventDuration)), (_.defaultTimedEventDuration = e.duration(_.options.defaultTimedEventDuration)), (_.moment = function () { var t; return ( 'local' === _.options.timezone ? ((t = qt.moment.apply(null, arguments)), t.hasTime() && t.local()) : (t = 'UTC' === _.options.timezone ? qt.moment.utc.apply(null, arguments) : qt.moment.parseZone.apply(null, arguments)), r(t), t ); }), (_.localizeMoment = r), (_.getIsAmbigTimezone = function () { return 'local' !== _.options.timezone && 'UTC' !== _.options.timezone; }), (_.applyTimezone = function (t) { if (!t.hasTime()) return t.clone(); var e, n = _.moment(t.toArray()), i = t.time() - n.time(); return i && ((e = n.clone().add(i)), t.time() - e.time() === 0 && (n = e)), n; }), (_.getNow = function () { var t = _.options.now; return 'function' == typeof t && (t = t()), _.moment(t).stripZone(); }), (_.getEventEnd = function (t) { return t.end ? t.end.clone() : _.getDefaultEventEnd(t.allDay, t.start); }), (_.getDefaultEventEnd = function (t, e) { var n = e.clone(); return ( t ? n.stripTime().add(_.defaultAllDayEventDuration) : n.add(_.defaultTimedEventDuration), _.getIsAmbigTimezone() && n.stripZone(), n ); }), (_.humanizeDuration = function (t) { return t.locale(_.options.locale).humanize(); }), Ut.call(_); var W, U, j, q, $, Q, X, K, J, tt = n[0], et = {}, nt = 0; (J = null != _.options.defaultDate ? _.moment(_.options.defaultDate).stripZone() : _.getNow()), (_.getSuggestedViewHeight = function () { return void 0 === X && f(), X; }), (_.isHeightAuto = function () { return 'auto' === _.options.contentHeight || 'auto' === _.options.height; }), (_.setToolbarsTitle = function (t) { W.proxyCall('updateTitle', t); }), (_.freezeContentHeight = F), (_.thawContentHeight = N); var it = 0; _.initialize(); } function Yt(e) { t.each(Re, function (t, n) { null == e[t] && (e[t] = n(e)); }); } function Wt(t) { return e.localeData(t) || e.localeData('en'); } function Ut() { function n(t, e) { return !U.options.lazyFetching || s(t, e) ? o(t, e) : bt.resolve($); } function i() { ($ = r(nt)), U.trigger('eventsReset', $); } function r(t) { var e, n, i = []; for (e = 0; e < t.length; e++) (n = t[e]), n.start.clone().stripZone() < Z && U.getEventEnd(n).stripZone() > q && i.push(n); return i; } function s(t, e) { return !q || t < q || e > Z; } function o(t, e) { return (q = t), (Z = e), l(); } function l() { return u(tt, 'reset'); } function a(t) { return u(E(t)); } function u(t, e) { var n, i; for ('reset' === e ? (nt = []) : 'add' !== e && (nt = C(nt, t)), n = 0; n < t.length; n++) (i = t[n]), 'pending' !== i._status && et++, (i._fetchId = (i._fetchId || 0) + 1), (i._status = 'pending'); for (n = 0; n < t.length; n++) (i = t[n]), c(i, i._fetchId); return et ? new bt(function (t) { U.one('eventsReceived', t); }) : bt.resolve($); } function c(e, n) { f(e, function (i) { var r, s, o, l = t.isArray(e.events); if (n === e._fetchId && 'rejected' !== e._status) { if (((e._status = 'resolved'), i)) for (r = 0; r < i.length; r++) (s = i[r]), (o = l ? s : F(s, e)), o && nt.push.apply(nt, _(o)); h(); } }); } function d(t) { var e = 'pending' === t._status; (t._status = 'rejected'), e && h(); } function h() { et--, et || (i(nt), U.trigger('eventsReceived', $)); } function f(e, n) { var i, r, s = qt.sourceFetchers; for (i = 0; i < s.length; i++) { if (((r = s[i].call(U, e, q.clone(), Z.clone(), U.options.timezone, n)), r === !0)) return; if ('object' == typeof r) return void f(r, n); } var o = e.events; if (o) t.isFunction(o) ? (U.pushLoading(), o.call(U, q.clone(), Z.clone(), U.options.timezone, function (t) { n(t), U.popLoading(); })) : t.isArray(o) ? n(o) : n(); else { var l = e.url; if (l) { var a, u = e.success, c = e.error, d = e.complete; a = t.isFunction(e.data) ? e.data() : e.data; var h = t.extend({}, a || {}), g = J(e.startParam, U.options.startParam), p = J(e.endParam, U.options.endParam), v = J(e.timezoneParam, U.options.timezoneParam); g && (h[g] = q.format()), p && (h[p] = Z.format()), U.options.timezone && 'local' != U.options.timezone && (h[v] = U.options.timezone), U.pushLoading(), t.ajax( t.extend({}, xe, e, { data: h, success: function (e) { e = e || []; var i = K(u, this, arguments); t.isArray(i) && (e = i), n(e); }, error: function () { K(c, this, arguments), n(); }, complete: function () { K(d, this, arguments), U.popLoading(); }, }) ); } else n(); } } function g(t) { var e = p(t); e && (tt.push(e), u([e], 'add')); } function p(e) { var n, i, r = qt.sourceNormalizers; if ( (t.isFunction(e) || t.isArray(e) ? (n = { events: e }) : 'string' == typeof e ? (n = { url: e }) : 'object' == typeof e && (n = t.extend({}, e)), n) ) { for ( n.className ? 'string' == typeof n.className && (n.className = n.className.split(/\s+/)) : (n.className = []), t.isArray(n.events) && ((n.origArray = n.events), (n.events = t.map(n.events, function (t) { return F(t, n); }))), i = 0; i < r.length; i++ ) r[i].call(U, n); return n; } } function v(t) { y(b(t)); } function m(t) { null == t ? y(tt, !0) : y(E(t)); } function y(e, n) { var r; for (r = 0; r < e.length; r++) d(e[r]); n ? ((tt = []), (nt = [])) : ((tt = t.grep(tt, function (t) { for (r = 0; r < e.length; r++) if (t === e[r]) return !1; return !0; })), (nt = C(nt, e))), i(); } function S() { return tt.slice(1); } function w(e) { return t.grep(tt, function (t) { return t.id && t.id === e; })[0]; } function E(e) { e ? t.isArray(e) || (e = [e]) : (e = []); var n, i = []; for (n = 0; n < e.length; n++) i.push.apply(i, b(e[n])); return i; } function b(e) { var n, i; for (n = 0; n < tt.length; n++) if (((i = tt[n]), i === e)) return [i]; return ( (i = w(e)), i ? [i] : t.grep(tt, function (t) { return D(e, t); }) ); } function D(t, e) { return t && e && T(t) == T(e); } function T(t) { return ('object' == typeof t ? t.origArray || t.googleCalendarId || t.url || t.events : null) || t; } function C(e, n) { return t.grep(e, function (t) { for (var e = 0; e < n.length; e++) if (t.source === n[e]) return !1; return !0; }); } function H(t) { R([t]); } function R(t) { var e, n; for (e = 0; e < t.length; e++) (n = t[e]), (n.start = U.moment(n.start)), n.end ? (n.end = U.moment(n.end)) : (n.end = null), Y(n, x(n)); i(); } function x(e) { var n = {}; return ( t.each(e, function (t, e) { I(t) && void 0 !== e && X(e) && (n[t] = e); }), n ); } function I(t) { return !/^_|^(id|allDay|start|end)$/.test(t); } function k(t, e) { return L([t], e); } function L(t, e) { var n, r, s, o, l, a = []; for (s = 0; s < t.length; s++) if ((r = F(t[s]))) { for (n = _(r), o = 0; o < n.length; o++) (l = n[o]), l.source || (e && (Q.events.push(l), (l.source = Q)), nt.push(l)); a = a.concat(n); } return a.length && i(), a; } function M(e) { var n, r; for ( null == e ? (e = function () { return !0; }) : t.isFunction(e) || ((n = e + ''), (e = function (t) { return t._id == n; })), nt = t.grep(nt, e, !0), r = 0; r < tt.length; r++ ) t.isArray(tt[r].events) && (tt[r].events = t.grep(tt[r].events, e, !0)); i(); } function B(e) { return t.isFunction(e) ? t.grep(nt, e) : null != e ? ((e += ''), t.grep(nt, function (t) { return t._id == e; })) : nt; } function z(t) { (t.start = U.moment(t.start)), t.end && (t.end = U.moment(t.end)), jt(t); } function F(n, i) { var r, s, o, l = {}; if ( (U.options.eventDataTransform && (n = U.options.eventDataTransform(n)), i && i.eventDataTransform && (n = i.eventDataTransform(n)), t.extend(l, n), i && (l.source = i), (l._id = n._id || (void 0 === n.id ? '_fc' + Ie++ : n.id + '')), n.className ? 'string' == typeof n.className ? (l.className = n.className.split(/\s+/)) : (l.className = n.className) : (l.className = []), (r = n.start || n.date), (s = n.end), j(r) && (r = e.duration(r)), j(s) && (s = e.duration(s)), n.dow || e.isDuration(r) || e.isDuration(s)) ) (l.start = r ? e.duration(r) : null), (l.end = s ? e.duration(s) : null), (l._recurring = !0); else { if (r && ((r = U.moment(r)), !r.isValid())) return !1; s && ((s = U.moment(s)), s.isValid() || (s = null)), (o = n.allDay), void 0 === o && (o = J(i ? i.allDayDefault : void 0, U.options.allDayDefault)), A(r, s, o, l); } return U.normalizeEvent(l), l; } function A(t, e, n, i) { (i.start = t), (i.end = e), (i.allDay = n), V(i), jt(i); } function V(t) { P(t), t.end && !t.end.isAfter(t.start) && (t.end = null), t.end || (U.options.forceEventDuration ? (t.end = U.getDefaultEventEnd(t.allDay, t.start)) : (t.end = null)); } function P(t) { null == t.allDay && (t.allDay = !(t.start.hasTime() || (t.end && t.end.hasTime()))), t.allDay ? (t.start.stripTime(), t.end && t.end.stripTime()) : (t.start.hasTime() || (t.start = U.applyTimezone(t.start.time(0))), t.end && !t.end.hasTime() && (t.end = U.applyTimezone(t.end.time(0)))); } function _(e, n, i) { var r, s, o, l, a, u, c, d, h, f = []; if (((n = n || q), (i = i || Z), e)) if (e._recurring) { if ((s = e.dow)) for (r = {}, o = 0; o < s.length; o++) r[s[o]] = !0; for (l = n.clone().stripTime(); l.isBefore(i); ) (r && !r[l.day()]) || ((a = e.start), (u = e.end), (c = l.clone()), (d = null), a && (c = c.time(a)), u && (d = l.clone().time(u)), (h = t.extend({}, e)), A(c, d, !a && !u, h), f.push(h)), l.add(1, 'days'); } else f.push(e); return f; } function Y(e, n, i) { function r(t, e) { return i ? O(t, e, i) : n.allDay ? G(t, e) : N(t, e); } var s, o, l, a, u, c, d = {}; return ( (n = n || {}), n.start || (n.start = e.start.clone()), void 0 === n.end && (n.end = e.end ? e.end.clone() : null), null == n.allDay && (n.allDay = e.allDay), V(n), (s = { start: e._start.clone(), end: e._end ? e._end.clone() : U.getDefaultEventEnd(e._allDay, e._start), allDay: n.allDay }), V(s), (o = null !== e._end && null === n.end), (l = r(n.start, s.start)), n.end ? ((a = r(n.end, s.end)), (u = a.subtract(l))) : (u = null), t.each(n, function (t, e) { I(t) && void 0 !== e && (d[t] = e); }), (c = W(B(e._id), o, n.allDay, l, u, d)), { dateDelta: l, durationDelta: u, undo: c } ); } function W(e, n, i, r, s, o) { var l = U.getIsAmbigTimezone(), a = []; return ( r && !r.valueOf() && (r = null), s && !s.valueOf() && (s = null), t.each(e, function (e, u) { var c, d; (c = { start: u.start.clone(), end: u.end ? u.end.clone() : null, allDay: u.allDay }), t.each(o, function (t) { c[t] = u[t]; }), (d = { start: u._start, end: u._end, allDay: i }), V(d), n ? (d.end = null) : s && !d.end && (d.end = U.getDefaultEventEnd(d.allDay, d.start)), r && (d.start.add(r), d.end && d.end.add(r)), s && d.end.add(s), l && !d.allDay && (r || s) && (d.start.stripZone(), d.end && d.end.stripZone()), t.extend(u, o, d), jt(u), a.push(function () { t.extend(u, c), jt(u); }); }), function () { for (var t = 0; t < a.length; t++) a[t](); } ); } var U = this; (U.requestEvents = n), (U.reportEventChange = i), (U.isFetchNeeded = s), (U.fetchEvents = o), (U.fetchEventSources = u), (U.refetchEvents = l), (U.refetchEventSources = a), (U.getEventSources = S), (U.getEventSourceById = w), (U.addEventSource = g), (U.removeEventSource = v), (U.removeEventSources = m), (U.updateEvent = H), (U.updateEvents = R), (U.renderEvent = k), (U.renderEvents = L), (U.removeEvents = M), (U.clientEvents = B), (U.mutateEvent = Y), (U.normalizeEventDates = V), (U.normalizeEventTimes = P); var q, Z, $, Q = { events: [] }, tt = [Q], et = 0, nt = []; t.each((U.options.events ? [U.options.events] : []).concat(U.options.eventSources || []), function (t, e) { var n = p(e); n && tt.push(n); }), (U.getEventCache = function () { return nt; }), (U.getPrunedEventCache = function () { return $; }), (U.rezoneArrayEventSources = function () { var e, n, i; for (e = 0; e < tt.length; e++) if (((n = tt[e].events), t.isArray(n))) for (i = 0; i < n.length; i++) z(n[i]); }), (U.buildEventFromInput = F), (U.expandEvent = _); } function jt(t) { (t._allDay = t.allDay), (t._start = t.start.clone()), (t._end = t.end ? t.end.clone() : null); } var qt = (t.fullCalendar = { version: '3.1.0', internalApiVersion: 7 }), Zt = (qt.views = {}); t.fn.fullCalendar = function (e) { var n = Array.prototype.slice.call(arguments, 1), i = this; return ( this.each(function (r, s) { var o, l = t(s), a = l.data('fullCalendar'); 'string' == typeof e ? a && t.isFunction(a[e]) && ((o = a[e].apply(a, n)), r || (i = o), 'destroy' === e && l.removeData('fullCalendar')) : a || ((a = new De(l, e)), l.data('fullCalendar', a), a.render()); }), i ); }; var $t = ['header', 'footer', 'buttonText', 'buttonIcons', 'themeButtonIcons']; (qt.intersectRanges = F), (qt.applyAll = K), (qt.debounce = at), (qt.isInt = ot), (qt.htmlEscape = tt), (qt.cssToStr = nt), (qt.proxy = lt), (qt.capitaliseFirstLetter = rt), (qt.getOuterRect = h), (qt.getClientRect = f), (qt.getContentRect = g), (qt.getScrollbarWidths = p); var Qt = null; (qt.preventDefault = T), (qt.intersectRects = R), (qt.parseFieldSpecs = L), (qt.compareByFieldSpecs = M), (qt.compareByFieldSpec = B), (qt.flexibleCompare = z), (qt.computeIntervalUnit = A), (qt.divideRangeByDuration = P), (qt.divideDurationByDuration = _), (qt.multiplyDuration = Y), (qt.durationHasTime = W); var Xt = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'], Kt = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; (qt.log = function () { var t = window.console; if (t && t.log) return t.log.apply(t, arguments); }), (qt.warn = function () { var t = window.console; return t && t.warn ? t.warn.apply(t, arguments) : qt.log.apply(qt, arguments); }); var Jt = {}.hasOwnProperty; qt.createObject = Z; var te = /^\s*\d{4}-\d\d$/, ee = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/, ne = e.fn, ie = t.extend({}, ne), re = e.momentProperties; re.push('_fullCalendar'), re.push('_ambigTime'), re.push('_ambigZone'), (qt.moment = function () { return ut(arguments); }), (qt.moment.utc = function () { var t = ut(arguments, !0); return t.hasTime() && t.utc(), t; }), (qt.moment.parseZone = function () { return ut(arguments, !0, !0); }), (ne.week = ne.weeks = function (t) { var e = this._locale._fullCalendar_weekCalc; return null == t && 'function' == typeof e ? e(this) : 'ISO' === e ? ie.isoWeek.apply(this, arguments) : ie.week.apply(this, arguments); }), (ne.time = function (t) { if (!this._fullCalendar) return ie.time.apply(this, arguments); if (null == t) return e.duration({ hours: this.hours(), minutes: this.minutes(), seconds: this.seconds(), milliseconds: this.milliseconds() }); (this._ambigTime = !1), e.isDuration(t) || e.isMoment(t) || (t = e.duration(t)); var n = 0; return ( e.isDuration(t) && (n = 24 * Math.floor(t.asDays())), this.hours(n + t.hours()) .minutes(t.minutes()) .seconds(t.seconds()) .milliseconds(t.milliseconds()) ); }), (ne.stripTime = function () { return ( this._ambigTime || (this.utc(!0), this.set({ hours: 0, minutes: 0, seconds: 0, ms: 0 }), (this._ambigTime = !0), (this._ambigZone = !0)), this ); }), (ne.hasTime = function () { return !this._ambigTime; }), (ne.stripZone = function () { var t; return this._ambigZone || ((t = this._ambigTime), this.utc(!0), (this._ambigTime = t || !1), (this._ambigZone = !0)), this; }), (ne.hasZone = function () { return !this._ambigZone; }), (ne.local = function (t) { return ie.local.call(this, this._ambigZone || t), (this._ambigTime = !1), (this._ambigZone = !1), this; }), (ne.utc = function (t) { return ie.utc.call(this, t), (this._ambigTime = !1), (this._ambigZone = !1), this; }), (ne.utcOffset = function (t) { return null != t && ((this._ambigTime = !1), (this._ambigZone = !1)), ie.utcOffset.apply(this, arguments); }), (ne.format = function () { return this._fullCalendar && arguments[0] ? dt(this, arguments[0]) : this._ambigTime ? ct(this, 'YYYY-MM-DD') : this._ambigZone ? ct(this, 'YYYY-MM-DD[T]HH:mm:ss') : ie.format.apply(this, arguments); }), (ne.toISOString = function () { return this._ambigTime ? ct(this, 'YYYY-MM-DD') : this._ambigZone ? ct(this, 'YYYY-MM-DD[T]HH:mm:ss') : ie.toISOString.apply(this, arguments); }); var se = { t: function (t) { return ct(t, 'a').charAt(0); }, T: function (t) { return ct(t, 'A').charAt(0); }, }; qt.formatRange = gt; var oe = { Y: 'year', M: 'month', D: 'day', d: 'day', A: 'second', a: 'second', T: 'second', t: 'second', H: 'second', h: 'second', m: 'second', s: 'second', }, le = {}, ae = { Y: { value: 1, unit: 'year' }, M: { value: 2, unit: 'month' }, W: { value: 3, unit: 'week' }, w: { value: 3, unit: 'week' }, D: { value: 4, unit: 'day' }, d: { value: 4, unit: 'day' }, }; (qt.queryMostGranularFormatUnit = function (t) { var e, n, i, r, s = mt(t); for (e = 0; e < s.length; e++) (n = s[e]), n.token && ((i = ae[n.token.charAt(0)]), i && (!r || i.value > r.value) && (r = i)); return r ? r.unit : null; }), (qt.Class = St), (St.extend = function () { var t, e, n = arguments.length; for (t = 0; t < n; t++) (e = arguments[t]), t < n - 1 && Et(this, e); return wt(this, e || {}); }), (St.mixin = function (t) { Et(this, t); }), (qt.Promise = bt), (bt.immediate = !0), (bt.resolve = function (e) { if (e && 'function' == typeof e.resolve) return e.promise(); if (e && 'function' == typeof e.then) return e; var n = t.Deferred().resolve(e), i = n.promise(); if (bt.immediate) { var r = i.then; (i._value = e), (i.then = function (t, n) { return 'function' == typeof t ? bt.resolve(t(e)) : r.call(i, t, n); }); } return i; }), (bt.reject = function () { return t.Deferred().reject().promise(); }), (bt.all = function (e) { var n, i, r, s = !1; if (bt.immediate) for (s = !0, n = [], i = 0; i < e.length; i++) if (((r = e[i]), r && 'function' == typeof r.state && 'resolved' === r.state() && '_value' in r)) n.push(r._value); else { if (r && 'function' == typeof r.then) { s = !1; break; } n.push(r); } return s ? bt.resolve(n) : t.when.apply(t.when, e).then(function () { return t.when(t.makeArray(arguments)); }); }), (qt.TaskQueue = Dt); var ue = (qt.EmitterMixin = { on: function (e, n) { return t(this).on(e, this._prepareIntercept(n)), this; }, one: function (e, n) { return t(this).one(e, this._prepareIntercept(n)), this; }, _prepareIntercept: function (e) { var n = function (t, n) { return e.apply(n.context || this, n.args || []); }; return e.guid || (e.guid = t.guid++), (n.guid = e.guid), n; }, off: function (e, n) { return t(this).off(e, n), this; }, trigger: function (e) { var n = Array.prototype.slice.call(arguments, 1); return t(this).triggerHandler(e, { args: n }), this; }, triggerWith: function (e, n, i) { return t(this).triggerHandler(e, { context: n, args: i }), this; }, }), ce = (qt.ListenerMixin = (function () { var e = 0, n = { listenerId: null, listenTo: function (e, n, i) { if ('object' == typeof n) for (var r in n) n.hasOwnProperty(r) && this.listenTo(e, r, n[r]); else 'string' == typeof n && e.on(n + '.' + this.getListenerNamespace(), t.proxy(i, this)); }, stopListeningTo: function (t, e) { t.off((e || '') + '.' + this.getListenerNamespace()); }, getListenerNamespace: function () { return null == this.listenerId && (this.listenerId = e++), '_listener' + this.listenerId; }, }; return n; })()), de = { isIgnoringMouse: !1, delayUnignoreMouse: null, initMouseIgnoring: function (t) { this.delayUnignoreMouse = at(lt(this, 'unignoreMouse'), t || 1e3); }, tempIgnoreMouse: function () { (this.isIgnoringMouse = !0), this.delayUnignoreMouse(); }, unignoreMouse: function () { this.isIgnoringMouse = !1; }, }, he = St.extend(ce, { isHidden: !0, options: null, el: null, margin: 10, constructor: function (t) { this.options = t || {}; }, show: function () { this.isHidden && (this.el || this.render(), this.el.show(), this.position(), (this.isHidden = !1), this.trigger('show')); }, hide: function () { this.isHidden || (this.el.hide(), (this.isHidden = !0), this.trigger('hide')); }, render: function () { var e = this, n = this.options; (this.el = t('
') .addClass(n.className || '') .css({ top: 0, left: 0 }) .append(n.content) .appendTo(n.parentEl)), this.el.on('click', '.fc-close', function () { e.hide(); }), n.autoHide && this.listenTo(t(document), 'mousedown', this.documentMousedown); }, documentMousedown: function (e) { this.el && !t(e.target).closest(this.el).length && this.hide(); }, removeElement: function () { this.hide(), this.el && (this.el.remove(), (this.el = null)), this.stopListeningTo(t(document), 'mousedown'); }, position: function () { var e, n, i, r, s, o = this.options, l = this.el.offsetParent().offset(), a = this.el.outerWidth(), u = this.el.outerHeight(), c = t(window), h = d(this.el); (r = o.top || 0), (s = void 0 !== o.left ? o.left : void 0 !== o.right ? o.right - a : 0), h.is(window) || h.is(document) ? ((h = c), (e = 0), (n = 0)) : ((i = h.offset()), (e = i.top), (n = i.left)), (e += c.scrollTop()), (n += c.scrollLeft()), o.viewportConstrain !== !1 && ((r = Math.min(r, e + h.outerHeight() - u - this.margin)), (r = Math.max(r, e + this.margin)), (s = Math.min(s, n + h.outerWidth() - a - this.margin)), (s = Math.max(s, n + this.margin))), this.el.css({ top: r - l.top, left: s - l.left }); }, trigger: function (t) { this.options[t] && this.options[t].apply(this, Array.prototype.slice.call(arguments, 1)); }, }), fe = (qt.CoordCache = St.extend({ els: null, forcedOffsetParentEl: null, origin: null, boundingRect: null, isHorizontal: !1, isVertical: !1, lefts: null, rights: null, tops: null, bottoms: null, constructor: function (e) { (this.els = t(e.els)), (this.isHorizontal = e.isHorizontal), (this.isVertical = e.isVertical), (this.forcedOffsetParentEl = e.offsetParent ? t(e.offsetParent) : null); }, build: function () { var t = this.forcedOffsetParentEl; !t && this.els.length > 0 && (t = this.els.eq(0).offsetParent()), (this.origin = t ? t.offset() : null), (this.boundingRect = this.queryBoundingRect()), this.isHorizontal && this.buildElHorizontals(), this.isVertical && this.buildElVerticals(); }, clear: function () { (this.origin = null), (this.boundingRect = null), (this.lefts = null), (this.rights = null), (this.tops = null), (this.bottoms = null); }, ensureBuilt: function () { this.origin || this.build(); }, buildElHorizontals: function () { var e = [], n = []; this.els.each(function (i, r) { var s = t(r), o = s.offset().left, l = s.outerWidth(); e.push(o), n.push(o + l); }), (this.lefts = e), (this.rights = n); }, buildElVerticals: function () { var e = [], n = []; this.els.each(function (i, r) { var s = t(r), o = s.offset().top, l = s.outerHeight(); e.push(o), n.push(o + l); }), (this.tops = e), (this.bottoms = n); }, getHorizontalIndex: function (t) { this.ensureBuilt(); var e, n = this.lefts, i = this.rights, r = n.length; for (e = 0; e < r; e++) if (t >= n[e] && t < i[e]) return e; }, getVerticalIndex: function (t) { this.ensureBuilt(); var e, n = this.tops, i = this.bottoms, r = n.length; for (e = 0; e < r; e++) if (t >= n[e] && t < i[e]) return e; }, getLeftOffset: function (t) { return this.ensureBuilt(), this.lefts[t]; }, getLeftPosition: function (t) { return this.ensureBuilt(), this.lefts[t] - this.origin.left; }, getRightOffset: function (t) { return this.ensureBuilt(), this.rights[t]; }, getRightPosition: function (t) { return this.ensureBuilt(), this.rights[t] - this.origin.left; }, getWidth: function (t) { return this.ensureBuilt(), this.rights[t] - this.lefts[t]; }, getTopOffset: function (t) { return this.ensureBuilt(), this.tops[t]; }, getTopPosition: function (t) { return this.ensureBuilt(), this.tops[t] - this.origin.top; }, getBottomOffset: function (t) { return this.ensureBuilt(), this.bottoms[t]; }, getBottomPosition: function (t) { return this.ensureBuilt(), this.bottoms[t] - this.origin.top; }, getHeight: function (t) { return this.ensureBuilt(), this.bottoms[t] - this.tops[t]; }, queryBoundingRect: function () { var t; return this.els.length > 0 && ((t = d(this.els.eq(0))), !t.is(document)) ? f(t) : null; }, isPointInBounds: function (t, e) { return this.isLeftInBounds(t) && this.isTopInBounds(e); }, isLeftInBounds: function (t) { return !this.boundingRect || (t >= this.boundingRect.left && t < this.boundingRect.right); }, isTopInBounds: function (t) { return !this.boundingRect || (t >= this.boundingRect.top && t < this.boundingRect.bottom); }, })), ge = (qt.DragListener = St.extend(ce, de, { options: null, subjectEl: null, originX: null, originY: null, scrollEl: null, isInteracting: !1, isDistanceSurpassed: !1, isDelayEnded: !1, isDragging: !1, isTouch: !1, delay: null, delayTimeoutId: null, minDistance: null, handleTouchScrollProxy: null, constructor: function (t) { (this.options = t || {}), (this.handleTouchScrollProxy = lt(this, 'handleTouchScroll')), this.initMouseIgnoring(500); }, startInteraction: function (e, n) { var i = b(e); if ('mousedown' === e.type) { if (this.isIgnoringMouse) return; if (!S(e)) return; e.preventDefault(); } this.isInteracting || ((n = n || {}), (this.delay = J(n.delay, this.options.delay, 0)), (this.minDistance = J(n.distance, this.options.distance, 0)), (this.subjectEl = this.options.subjectEl), (this.isInteracting = !0), (this.isTouch = i), (this.isDelayEnded = !1), (this.isDistanceSurpassed = !1), (this.originX = w(e)), (this.originY = E(e)), (this.scrollEl = d(t(e.target))), this.bindHandlers(), this.initAutoScroll(), this.handleInteractionStart(e), this.startDelay(e), this.minDistance || this.handleDistanceSurpassed(e)); }, handleInteractionStart: function (t) { this.trigger('interactionStart', t); }, endInteraction: function (t, e) { this.isInteracting && (this.endDrag(t), this.delayTimeoutId && (clearTimeout(this.delayTimeoutId), (this.delayTimeoutId = null)), this.destroyAutoScroll(), this.unbindHandlers(), (this.isInteracting = !1), this.handleInteractionEnd(t, e), this.isTouch && this.tempIgnoreMouse()); }, handleInteractionEnd: function (t, e) { this.trigger('interactionEnd', t, e || !1); }, bindHandlers: function () { var e = this, n = 1; this.isTouch ? (this.listenTo(t(document), { touchmove: this.handleTouchMove, touchend: this.endInteraction, touchcancel: this.endInteraction, touchstart: function (t) { n ? n-- : e.endInteraction(t, !0); }, }), !C(this.handleTouchScrollProxy) && this.scrollEl && this.listenTo(this.scrollEl, 'scroll', this.handleTouchScroll)) : this.listenTo(t(document), { mousemove: this.handleMouseMove, mouseup: this.endInteraction }), this.listenTo(t(document), { selectstart: T, contextmenu: T }); }, unbindHandlers: function () { this.stopListeningTo(t(document)), H(this.handleTouchScrollProxy), this.scrollEl && this.stopListeningTo(this.scrollEl, 'scroll'); }, startDrag: function (t, e) { this.startInteraction(t, e), this.isDragging || ((this.isDragging = !0), this.handleDragStart(t)); }, handleDragStart: function (t) { this.trigger('dragStart', t); }, handleMove: function (t) { var e, n = w(t) - this.originX, i = E(t) - this.originY, r = this.minDistance; this.isDistanceSurpassed || ((e = n * n + i * i), e >= r * r && this.handleDistanceSurpassed(t)), this.isDragging && this.handleDrag(n, i, t); }, handleDrag: function (t, e, n) { this.trigger('drag', t, e, n), this.updateAutoScroll(n); }, endDrag: function (t) { this.isDragging && ((this.isDragging = !1), this.handleDragEnd(t)); }, handleDragEnd: function (t) { this.trigger('dragEnd', t); }, startDelay: function (t) { var e = this; this.delay ? (this.delayTimeoutId = setTimeout(function () { e.handleDelayEnd(t); }, this.delay)) : this.handleDelayEnd(t); }, handleDelayEnd: function (t) { (this.isDelayEnded = !0), this.isDistanceSurpassed && this.startDrag(t); }, handleDistanceSurpassed: function (t) { (this.isDistanceSurpassed = !0), this.isDelayEnded && this.startDrag(t); }, handleTouchMove: function (t) { this.isDragging && t.preventDefault(), this.handleMove(t); }, handleMouseMove: function (t) { this.handleMove(t); }, handleTouchScroll: function (t) { this.isDragging || this.endInteraction(t, !0); }, trigger: function (t) { this.options[t] && this.options[t].apply(this, Array.prototype.slice.call(arguments, 1)), this['_' + t] && this['_' + t].apply(this, Array.prototype.slice.call(arguments, 1)); }, })); ge.mixin({ isAutoScroll: !1, scrollBounds: null, scrollTopVel: null, scrollLeftVel: null, scrollIntervalId: null, scrollSensitivity: 30, scrollSpeed: 200, scrollIntervalMs: 50, initAutoScroll: function () { var t = this.scrollEl; (this.isAutoScroll = this.options.scroll && t && !t.is(window) && !t.is(document)), this.isAutoScroll && this.listenTo(t, 'scroll', at(this.handleDebouncedScroll, 100)); }, destroyAutoScroll: function () { this.endAutoScroll(), this.isAutoScroll && this.stopListeningTo(this.scrollEl, 'scroll'); }, computeScrollBounds: function () { this.isAutoScroll && (this.scrollBounds = h(this.scrollEl)); }, updateAutoScroll: function (t) { var e, n, i, r, s = this.scrollSensitivity, o = this.scrollBounds, l = 0, a = 0; o && ((e = (s - (E(t) - o.top)) / s), (n = (s - (o.bottom - E(t))) / s), (i = (s - (w(t) - o.left)) / s), (r = (s - (o.right - w(t))) / s), e >= 0 && e <= 1 ? (l = e * this.scrollSpeed * -1) : n >= 0 && n <= 1 && (l = n * this.scrollSpeed), i >= 0 && i <= 1 ? (a = i * this.scrollSpeed * -1) : r >= 0 && r <= 1 && (a = r * this.scrollSpeed)), this.setScrollVel(l, a); }, setScrollVel: function (t, e) { (this.scrollTopVel = t), (this.scrollLeftVel = e), this.constrainScrollVel(), (!this.scrollTopVel && !this.scrollLeftVel) || this.scrollIntervalId || (this.scrollIntervalId = setInterval(lt(this, 'scrollIntervalFunc'), this.scrollIntervalMs)); }, constrainScrollVel: function () { var t = this.scrollEl; this.scrollTopVel < 0 ? t.scrollTop() <= 0 && (this.scrollTopVel = 0) : this.scrollTopVel > 0 && t.scrollTop() + t[0].clientHeight >= t[0].scrollHeight && (this.scrollTopVel = 0), this.scrollLeftVel < 0 ? t.scrollLeft() <= 0 && (this.scrollLeftVel = 0) : this.scrollLeftVel > 0 && t.scrollLeft() + t[0].clientWidth >= t[0].scrollWidth && (this.scrollLeftVel = 0); }, scrollIntervalFunc: function () { var t = this.scrollEl, e = this.scrollIntervalMs / 1e3; this.scrollTopVel && t.scrollTop(t.scrollTop() + this.scrollTopVel * e), this.scrollLeftVel && t.scrollLeft(t.scrollLeft() + this.scrollLeftVel * e), this.constrainScrollVel(), this.scrollTopVel || this.scrollLeftVel || this.endAutoScroll(); }, endAutoScroll: function () { this.scrollIntervalId && (clearInterval(this.scrollIntervalId), (this.scrollIntervalId = null), this.handleScrollEnd()); }, handleDebouncedScroll: function () { this.scrollIntervalId || this.handleScrollEnd(); }, handleScrollEnd: function () {}, }); var pe = ge.extend({ component: null, origHit: null, hit: null, coordAdjust: null, constructor: function (t, e) { ge.call(this, e), (this.component = t); }, handleInteractionStart: function (t) { var e, n, i, r = this.subjectEl; this.computeCoords(), t ? ((n = { left: w(t), top: E(t) }), (i = n), r && ((e = h(r)), (i = x(i, e))), (this.origHit = this.queryHit(i.left, i.top)), r && this.options.subjectCenter && (this.origHit && (e = R(this.origHit, e) || e), (i = I(e))), (this.coordAdjust = k(i, n))) : ((this.origHit = null), (this.coordAdjust = null)), ge.prototype.handleInteractionStart.apply(this, arguments); }, computeCoords: function () { this.component.prepareHits(), this.computeScrollBounds(); }, handleDragStart: function (t) { var e; ge.prototype.handleDragStart.apply(this, arguments), (e = this.queryHit(w(t), E(t))), e && this.handleHitOver(e); }, handleDrag: function (t, e, n) { var i; ge.prototype.handleDrag.apply(this, arguments), (i = this.queryHit(w(n), E(n))), Tt(i, this.hit) || (this.hit && this.handleHitOut(), i && this.handleHitOver(i)); }, handleDragEnd: function () { this.handleHitDone(), ge.prototype.handleDragEnd.apply(this, arguments); }, handleHitOver: function (t) { var e = Tt(t, this.origHit); (this.hit = t), this.trigger('hitOver', this.hit, e, this.origHit); }, handleHitOut: function () { this.hit && (this.trigger('hitOut', this.hit), this.handleHitDone(), (this.hit = null)); }, handleHitDone: function () { this.hit && this.trigger('hitDone', this.hit); }, handleInteractionEnd: function () { ge.prototype.handleInteractionEnd.apply(this, arguments), (this.origHit = null), (this.hit = null), this.component.releaseHits(); }, handleScrollEnd: function () { ge.prototype.handleScrollEnd.apply(this, arguments), this.computeCoords(); }, queryHit: function (t, e) { return this.coordAdjust && ((t += this.coordAdjust.left), (e += this.coordAdjust.top)), this.component.queryHit(t, e); }, }), ve = St.extend(ce, { options: null, sourceEl: null, el: null, parentEl: null, top0: null, left0: null, y0: null, x0: null, topDelta: null, leftDelta: null, isFollowing: !1, isHidden: !1, isAnimating: !1, constructor: function (e, n) { (this.options = n = n || {}), (this.sourceEl = e), (this.parentEl = n.parentEl ? t(n.parentEl) : e.parent()); }, start: function (e) { this.isFollowing || ((this.isFollowing = !0), (this.y0 = E(e)), (this.x0 = w(e)), (this.topDelta = 0), (this.leftDelta = 0), this.isHidden || this.updatePosition(), b(e) ? this.listenTo(t(document), 'touchmove', this.handleMove) : this.listenTo(t(document), 'mousemove', this.handleMove)); }, stop: function (e, n) { function i() { (r.isAnimating = !1), r.removeElement(), (r.top0 = r.left0 = null), n && n(); } var r = this, s = this.options.revertDuration; this.isFollowing && !this.isAnimating && ((this.isFollowing = !1), this.stopListeningTo(t(document)), e && s && !this.isHidden ? ((this.isAnimating = !0), this.el.animate({ top: this.top0, left: this.left0 }, { duration: s, complete: i })) : i()); }, getEl: function () { var t = this.el; return ( t || ((t = this.el = this.sourceEl .clone() .addClass(this.options.additionalClass || '') .css({ position: 'absolute', visibility: '', display: this.isHidden ? 'none' : '', margin: 0, right: 'auto', bottom: 'auto', width: this.sourceEl.width(), height: this.sourceEl.height(), opacity: this.options.opacity || '', zIndex: this.options.zIndex, })), t.addClass('fc-unselectable'), t.appendTo(this.parentEl)), t ); }, removeElement: function () { this.el && (this.el.remove(), (this.el = null)); }, updatePosition: function () { var t, e; this.getEl(), null === this.top0 && ((t = this.sourceEl.offset()), (e = this.el.offsetParent().offset()), (this.top0 = t.top - e.top), (this.left0 = t.left - e.left)), this.el.css({ top: this.top0 + this.topDelta, left: this.left0 + this.leftDelta }); }, handleMove: function (t) { (this.topDelta = E(t) - this.y0), (this.leftDelta = w(t) - this.x0), this.isHidden || this.updatePosition(); }, hide: function () { this.isHidden || ((this.isHidden = !0), this.el && this.el.hide()); }, show: function () { this.isHidden && ((this.isHidden = !1), this.updatePosition(), this.getEl().show()); }, }), me = (qt.Grid = St.extend(ce, de, { hasDayInteractions: !0, view: null, isRTL: null, start: null, end: null, el: null, elsByFill: null, eventTimeFormat: null, displayEventTime: null, displayEventEnd: null, minResizeDuration: null, largeUnit: null, dayDragListener: null, segDragListener: null, segResizeListener: null, externalDragListener: null, constructor: function (t) { (this.view = t), (this.isRTL = t.opt('isRTL')), (this.elsByFill = {}), (this.dayDragListener = this.buildDayDragListener()), this.initMouseIgnoring(); }, computeEventTimeFormat: function () { return this.view.opt('smallTimeFormat'); }, computeDisplayEventTime: function () { return !0; }, computeDisplayEventEnd: function () { return !0; }, setRange: function (t) { (this.start = t.start.clone()), (this.end = t.end.clone()), this.rangeUpdated(), this.processRangeOptions(); }, rangeUpdated: function () {}, processRangeOptions: function () { var t, e, n = this.view; (this.eventTimeFormat = n.opt('eventTimeFormat') || n.opt('timeFormat') || this.computeEventTimeFormat()), (t = n.opt('displayEventTime')), null == t && (t = this.computeDisplayEventTime()), (e = n.opt('displayEventEnd')), null == e && (e = this.computeDisplayEventEnd()), (this.displayEventTime = t), (this.displayEventEnd = e); }, spanToSegs: function (t) {}, diffDates: function (t, e) { return this.largeUnit ? O(t, e, this.largeUnit) : N(t, e); }, prepareHits: function () {}, releaseHits: function () {}, queryHit: function (t, e) {}, getHitSpan: function (t) {}, getHitEl: function (t) {}, setElement: function (t) { (this.el = t), this.hasDayInteractions && (D(t), this.bindDayHandler('touchstart', this.dayTouchStart), this.bindDayHandler('mousedown', this.dayMousedown)), this.bindSegHandlers(), this.bindGlobalHandlers(); }, bindDayHandler: function (e, n) { var i = this; this.el.on(e, function (e) { if (!t(e.target).is(i.segSelector + ',' + i.segSelector + ' *,.fc-more,a[data-goto]')) return n.call(i, e); }); }, removeElement: function () { this.unbindGlobalHandlers(), this.clearDragListeners(), this.el.remove(); }, renderSkeleton: function () {}, renderDates: function () {}, unrenderDates: function () {}, bindGlobalHandlers: function () { this.listenTo(t(document), { dragstart: this.externalDragStart, sortstart: this.externalDragStart }); }, unbindGlobalHandlers: function () { this.stopListeningTo(t(document)); }, dayMousedown: function (t) { this.isIgnoringMouse || this.dayDragListener.startInteraction(t, {}); }, dayTouchStart: function (t) { var e = this.view, n = e.opt('selectLongPressDelay'); (e.isSelected || e.selectedEvent) && this.tempIgnoreMouse(), null == n && (n = e.opt('longPressDelay')), this.dayDragListener.startInteraction(t, { delay: n }); }, buildDayDragListener: function () { var t, e, n = this, i = this.view, r = i.opt('selectable'), l = new pe(this, { scroll: i.opt('dragScroll'), interactionStart: function () { (t = l.origHit), (e = null); }, dragStart: function () { i.unselect(); }, hitOver: function (i, o, l) { l && (o || (t = null), r && ((e = n.computeSelection(n.getHitSpan(l), n.getHitSpan(i))), e ? n.renderSelection(e) : e === !1 && s())); }, hitOut: function () { (t = null), (e = null), n.unrenderSelection(); }, hitDone: function () { o(); }, interactionEnd: function (r, s) { s || (t && !n.isIgnoringMouse && i.triggerDayClick(n.getHitSpan(t), n.getHitEl(t), r), e && i.reportSelection(e, r)); }, }); return l; }, clearDragListeners: function () { this.dayDragListener.endInteraction(), this.segDragListener && this.segDragListener.endInteraction(), this.segResizeListener && this.segResizeListener.endInteraction(), this.externalDragListener && this.externalDragListener.endInteraction(); }, renderEventLocationHelper: function (t, e) { var n = this.fabricateHelperEvent(t, e); return this.renderHelper(n, e); }, fabricateHelperEvent: function (t, e) { var n = e ? Z(e.event) : {}; return ( (n.start = t.start.clone()), (n.end = t.end ? t.end.clone() : null), (n.allDay = null), this.view.calendar.normalizeEventDates(n), (n.className = (n.className || []).concat('fc-helper')), e || (n.editable = !1), n ); }, renderHelper: function (t, e) {}, unrenderHelper: function () {}, renderSelection: function (t) { this.renderHighlight(t); }, unrenderSelection: function () { this.unrenderHighlight(); }, computeSelection: function (t, e) { var n = this.computeSelectionSpan(t, e); return !(n && !this.view.calendar.isSelectionSpanAllowed(n)) && n; }, computeSelectionSpan: function (t, e) { var n = [t.start, t.end, e.start, e.end]; return n.sort(st), { start: n[0].clone(), end: n[3].clone() }; }, renderHighlight: function (t) { this.renderFill('highlight', this.spanToSegs(t)); }, unrenderHighlight: function () { this.unrenderFill('highlight'); }, highlightSegClasses: function () { return ['fc-highlight']; }, renderBusinessHours: function () {}, unrenderBusinessHours: function () {}, getNowIndicatorUnit: function () {}, renderNowIndicator: function (t) {}, unrenderNowIndicator: function () {}, renderFill: function (t, e) {}, unrenderFill: function (t) { var e = this.elsByFill[t]; e && (e.remove(), delete this.elsByFill[t]); }, renderFillSegEls: function (e, n) { var i, r = this, s = this[e + 'SegEl'], o = '', l = []; if (n.length) { for (i = 0; i < n.length; i++) o += this.fillSegHtml(e, n[i]); t(o).each(function (e, i) { var o = n[e], a = t(i); s && (a = s.call(r, o, a)), a && ((a = t(a)), a.is(r.fillSegTag) && ((o.el = a), l.push(o))); }); } return l; }, fillSegTag: 'div', fillSegHtml: function (t, e) { var n = this[t + 'SegClasses'], i = this[t + 'SegCss'], r = n ? n.call(this, e) : [], s = nt(i ? i.call(this, e) : {}); return '<' + this.fillSegTag + (r.length ? ' class="' + r.join(' ') + '"' : '') + (s ? ' style="' + s + '"' : '') + ' />'; }, getDayClasses: function (t, e) { var n = this.view, i = n.calendar.getNow(), r = ['fc-' + Xt[t.day()]]; return ( 1 == n.intervalDuration.as('months') && t.month() != n.intervalStart.month() && r.push('fc-other-month'), t.isSame(i, 'day') ? (r.push('fc-today'), e !== !0 && r.push(n.highlightStateClass)) : t < i ? r.push('fc-past') : r.push('fc-future'), r ); }, })); me.mixin({ segSelector: '.fc-event-container > *', mousedOverSeg: null, isDraggingSeg: !1, isResizingSeg: !1, isDraggingExternal: !1, segs: null, renderEvents: function (t) { var e, n = [], i = []; for (e = 0; e < t.length; e++) (Rt(t[e]) ? n : i).push(t[e]); this.segs = [].concat(this.renderBgEvents(n), this.renderFgEvents(i)); }, renderBgEvents: function (t) { var e = this.eventsToSegs(t); return this.renderBgSegs(e) || e; }, renderFgEvents: function (t) { var e = this.eventsToSegs(t); return this.renderFgSegs(e) || e; }, unrenderEvents: function () { this.handleSegMouseout(), this.clearDragListeners(), this.unrenderFgSegs(), this.unrenderBgSegs(), (this.segs = null); }, getEventSegs: function () { return this.segs || []; }, renderFgSegs: function (t) {}, unrenderFgSegs: function () {}, renderFgSegEls: function (e, n) { var i, r = this.view, s = '', o = []; if (e.length) { for (i = 0; i < e.length; i++) s += this.fgSegHtml(e[i], n); t(s).each(function (n, i) { var s = e[n], l = r.resolveEventEl(s.event, t(i)); l && (l.data('fc-seg', s), (s.el = l), o.push(s)); }); } return o; }, fgSegHtml: function (t, e) {}, renderBgSegs: function (t) { return this.renderFill('bgEvent', t); }, unrenderBgSegs: function () { this.unrenderFill('bgEvent'); }, bgEventSegEl: function (t, e) { return this.view.resolveEventEl(t.event, e); }, bgEventSegClasses: function (t) { var e = t.event, n = e.source || {}; return ['fc-bgevent'].concat(e.className, n.className || []); }, bgEventSegCss: function (t) { return { 'background-color': this.getSegSkinCss(t)['background-color'] }; }, businessHoursSegClasses: function (t) { return ['fc-nonbusiness', 'fc-bgevent']; }, buildBusinessHourSegs: function (t, e) { return this.eventsToSegs(this.buildBusinessHourEvents(t, e)); }, buildBusinessHourEvents: function (e, n) { var i, r = this.view.calendar; return ( null == n && (n = r.options.businessHours), (i = r.computeBusinessHourEvents(e, n)), !i.length && n && (i = [t.extend({}, ke, { start: this.view.end, end: this.view.end, dow: null })]), i ); }, bindSegHandlers: function () { this.bindSegHandlersToEl(this.el); }, bindSegHandlersToEl: function (t) { this.bindSegHandlerToEl(t, 'touchstart', this.handleSegTouchStart), this.bindSegHandlerToEl(t, 'touchend', this.handleSegTouchEnd), this.bindSegHandlerToEl(t, 'mouseenter', this.handleSegMouseover), this.bindSegHandlerToEl(t, 'mouseleave', this.handleSegMouseout), this.bindSegHandlerToEl(t, 'mousedown', this.handleSegMousedown), this.bindSegHandlerToEl(t, 'click', this.handleSegClick); }, bindSegHandlerToEl: function (e, n, i) { var r = this; e.on(n, this.segSelector, function (e) { var n = t(this).data('fc-seg'); if (n && !r.isDraggingSeg && !r.isResizingSeg) return i.call(r, n, e); }); }, handleSegClick: function (t, e) { var n = this.view.publiclyTrigger('eventClick', t.el[0], t.event, e); n === !1 && e.preventDefault(); }, handleSegMouseover: function (t, e) { this.isIgnoringMouse || this.mousedOverSeg || ((this.mousedOverSeg = t), this.view.isEventResizable(t.event) && t.el.addClass('fc-allow-mouse-resize'), this.view.publiclyTrigger('eventMouseover', t.el[0], t.event, e)); }, handleSegMouseout: function (t, e) { (e = e || {}), this.mousedOverSeg && ((t = t || this.mousedOverSeg), (this.mousedOverSeg = null), this.view.isEventResizable(t.event) && t.el.removeClass('fc-allow-mouse-resize'), this.view.publiclyTrigger('eventMouseout', t.el[0], t.event, e)); }, handleSegMousedown: function (t, e) { var n = this.startSegResize(t, e, { distance: 5 }); !n && this.view.isEventDraggable(t.event) && this.buildSegDragListener(t).startInteraction(e, { distance: 5 }); }, handleSegTouchStart: function (t, e) { var n, i, r = this.view, s = t.event, o = r.isEventSelected(s), l = r.isEventDraggable(s), a = r.isEventResizable(s), u = !1; o && a && (u = this.startSegResize(t, e)), u || (!l && !a) || ((i = r.opt('eventLongPressDelay')), null == i && (i = r.opt('longPressDelay')), (n = l ? this.buildSegDragListener(t) : this.buildSegSelectListener(t)), n.startInteraction(e, { delay: o ? 0 : i })), this.tempIgnoreMouse(); }, handleSegTouchEnd: function (t, e) { this.tempIgnoreMouse(); }, startSegResize: function (e, n, i) { return ( !!t(n.target).is('.fc-resizer') && (this.buildSegResizeListener(e, t(n.target).is('.fc-start-resizer')).startInteraction(n, i), !0) ); }, buildSegDragListener: function (t) { var e, n, i, r = this, l = this.view, a = l.calendar, u = t.el, c = t.event; if (this.segDragListener) return this.segDragListener; var d = (this.segDragListener = new pe(l, { scroll: l.opt('dragScroll'), subjectEl: u, subjectCenter: !0, interactionStart: function (i) { (t.component = r), (e = !1), (n = new ve(t.el, { additionalClass: 'fc-dragging', parentEl: l.el, opacity: d.isTouch ? null : l.opt('dragOpacity'), revertDuration: l.opt('dragRevertDuration'), zIndex: 2, })), n.hide(), n.start(i); }, dragStart: function (n) { d.isTouch && !l.isEventSelected(c) && l.selectEvent(c), (e = !0), r.handleSegMouseout(t, n), r.segDragStart(t, n), l.hideEvent(c); }, hitOver: function (e, o, u) { var h; t.hit && (u = t.hit), (i = r.computeEventDrop(u.component.getHitSpan(u), e.component.getHitSpan(e), c)), i && !a.isEventSpanAllowed(r.eventToSpan(i), c) && (s(), (i = null)), i && (h = l.renderDrag(i, t)) ? (h.addClass('fc-dragging'), d.isTouch || r.applyDragOpacity(h), n.hide()) : n.show(), o && (i = null); }, hitOut: function () { l.unrenderDrag(), n.show(), (i = null); }, hitDone: function () { o(); }, interactionEnd: function (s) { delete t.component, n.stop(!i, function () { e && (l.unrenderDrag(), r.segDragStop(t, s)), i ? l.reportEventDrop(c, i, r.largeUnit, u, s) : l.showEvent(c); }), (r.segDragListener = null); }, })); return d; }, buildSegSelectListener: function (t) { var e = this, n = this.view, i = t.event; if (this.segDragListener) return this.segDragListener; var r = (this.segDragListener = new ge({ dragStart: function (t) { r.isTouch && !n.isEventSelected(i) && n.selectEvent(i); }, interactionEnd: function (t) { e.segDragListener = null; }, })); return r; }, segDragStart: function (t, e) { (this.isDraggingSeg = !0), this.view.publiclyTrigger('eventDragStart', t.el[0], t.event, e, {}); }, segDragStop: function (t, e) { (this.isDraggingSeg = !1), this.view.publiclyTrigger('eventDragStop', t.el[0], t.event, e, {}); }, computeEventDrop: function (t, e, n) { var i, r, s = this.view.calendar, o = t.start, l = e.start; return ( o.hasTime() === l.hasTime() ? ((i = this.diffDates(l, o)), n.allDay && W(i) ? ((r = { start: n.start.clone(), end: s.getEventEnd(n), allDay: !1 }), s.normalizeEventTimes(r)) : (r = Ht(n)), r.start.add(i), r.end && r.end.add(i)) : (r = { start: l.clone(), end: null, allDay: !l.hasTime() }), r ); }, applyDragOpacity: function (t) { var e = this.view.opt('dragOpacity'); null != e && t.css('opacity', e); }, externalDragStart: function (e, n) { var i, r, s = this.view; s.opt('droppable') && ((i = t((n ? n.item : null) || e.target)), (r = s.opt('dropAccept')), (t.isFunction(r) ? r.call(i[0], i) : i.is(r)) && (this.isDraggingExternal || this.listenToExternalDrag(i, e, n))); }, listenToExternalDrag: function (t, e, n) { var i, r = this, l = this.view.calendar, a = Mt(t), u = (r.externalDragListener = new pe(this, { interactionStart: function () { r.isDraggingExternal = !0; }, hitOver: function (t) { (i = r.computeExternalDrop(t.component.getHitSpan(t), a)), i && !l.isExternalSpanAllowed(r.eventToSpan(i), i, a.eventProps) && (s(), (i = null)), i && r.renderDrag(i); }, hitOut: function () { i = null; }, hitDone: function () { o(), r.unrenderDrag(); }, interactionEnd: function (e) { i && r.view.reportExternalDrop(a, i, t, e, n), (r.isDraggingExternal = !1), (r.externalDragListener = null); }, })); u.startDrag(e); }, computeExternalDrop: function (t, e) { var n = this.view.calendar, i = { start: n.applyTimezone(t.start), end: null }; return e.startTime && !i.start.hasTime() && i.start.time(e.startTime), e.duration && (i.end = i.start.clone().add(e.duration)), i; }, renderDrag: function (t, e) {}, unrenderDrag: function () {}, buildSegResizeListener: function (t, e) { var n, i, r = this, l = this.view, a = l.calendar, u = t.el, c = t.event, d = a.getEventEnd(c), h = (this.segResizeListener = new pe(this, { scroll: l.opt('dragScroll'), subjectEl: u, interactionStart: function () { n = !1; }, dragStart: function (e) { (n = !0), r.handleSegMouseout(t, e), r.segResizeStart(t, e); }, hitOver: function (n, o, u) { var h = r.getHitSpan(u), f = r.getHitSpan(n); (i = e ? r.computeEventStartResize(h, f, c) : r.computeEventEndResize(h, f, c)), i && (a.isEventSpanAllowed(r.eventToSpan(i), c) ? i.start.isSame(c.start.clone().stripZone()) && i.end.isSame(d.clone().stripZone()) && (i = null) : (s(), (i = null))), i && (l.hideEvent(c), r.renderEventResize(i, t)); }, hitOut: function () { (i = null), l.showEvent(c); }, hitDone: function () { r.unrenderEventResize(), o(); }, interactionEnd: function (e) { n && r.segResizeStop(t, e), i ? l.reportEventResize(c, i, r.largeUnit, u, e) : l.showEvent(c), (r.segResizeListener = null); }, })); return h; }, segResizeStart: function (t, e) { (this.isResizingSeg = !0), this.view.publiclyTrigger('eventResizeStart', t.el[0], t.event, e, {}); }, segResizeStop: function (t, e) { (this.isResizingSeg = !1), this.view.publiclyTrigger('eventResizeStop', t.el[0], t.event, e, {}); }, computeEventStartResize: function (t, e, n) { return this.computeEventResize('start', t, e, n); }, computeEventEndResize: function (t, e, n) { return this.computeEventResize('end', t, e, n); }, computeEventResize: function (t, e, n, i) { var r, s, o = this.view.calendar, l = this.diffDates(n[t], e[t]); return ( (r = { start: i.start.clone(), end: o.getEventEnd(i), allDay: i.allDay }), r.allDay && W(l) && ((r.allDay = !1), o.normalizeEventTimes(r)), r[t].add(l), r.start.isBefore(r.end) || ((s = this.minResizeDuration || (i.allDay ? o.defaultAllDayEventDuration : o.defaultTimedEventDuration)), 'start' == t ? (r.start = r.end.clone().subtract(s)) : (r.end = r.start.clone().add(s))), r ); }, renderEventResize: function (t, e) {}, unrenderEventResize: function () {}, getEventTimeText: function (t, e, n) { return ( null == e && (e = this.eventTimeFormat), null == n && (n = this.displayEventEnd), this.displayEventTime && t.start.hasTime() ? (n && t.end ? this.view.formatRange(t, e) : t.start.format(e)) : '' ); }, getSegClasses: function (t, e, n) { var i = this.view, r = ['fc-event', t.isStart ? 'fc-start' : 'fc-not-start', t.isEnd ? 'fc-end' : 'fc-not-end'].concat(this.getSegCustomClasses(t)); return e && r.push('fc-draggable'), n && r.push('fc-resizable'), i.isEventSelected(t.event) && r.push('fc-selected'), r; }, getSegCustomClasses: function (t) { var e = t.event; return [].concat(e.className, e.source ? e.source.className : []); }, getSegSkinCss: function (t) { return { 'background-color': this.getSegBackgroundColor(t), 'border-color': this.getSegBorderColor(t), color: this.getSegTextColor(t), }; }, getSegBackgroundColor: function (t) { return t.event.backgroundColor || t.event.color || this.getSegDefaultBackgroundColor(t); }, getSegDefaultBackgroundColor: function (t) { var e = t.event.source || {}; return e.backgroundColor || e.color || this.view.opt('eventBackgroundColor') || this.view.opt('eventColor'); }, getSegBorderColor: function (t) { return t.event.borderColor || t.event.color || this.getSegDefaultBorderColor(t); }, getSegDefaultBorderColor: function (t) { var e = t.event.source || {}; return e.borderColor || e.color || this.view.opt('eventBorderColor') || this.view.opt('eventColor'); }, getSegTextColor: function (t) { return t.event.textColor || this.getSegDefaultTextColor(t); }, getSegDefaultTextColor: function (t) { var e = t.event.source || {}; return e.textColor || this.view.opt('eventTextColor'); }, eventToSegs: function (t) { return this.eventsToSegs([t]); }, eventToSpan: function (t) { return this.eventToSpans(t)[0]; }, eventToSpans: function (t) { var e = this.eventToRange(t); return this.eventRangeToSpans(e, t); }, eventsToSegs: function (e, n) { var i = this, r = kt(e), s = []; return ( t.each(r, function (t, e) { var r, o = []; for (r = 0; r < e.length; r++) o.push(i.eventToRange(e[r])); if (xt(e[0])) for (o = i.invertRanges(o), r = 0; r < o.length; r++) s.push.apply(s, i.eventRangeToSegs(o[r], e[0], n)); else for (r = 0; r < o.length; r++) s.push.apply(s, i.eventRangeToSegs(o[r], e[r], n)); }), s ); }, eventToRange: function (t) { var e = this.view.calendar, n = t.start.clone().stripZone(), i = (t.end ? t.end.clone() : e.getDefaultEventEnd(null != t.allDay ? t.allDay : !t.start.hasTime(), t.start)).stripZone(); return e.localizeMoment(n), e.localizeMoment(i), { start: n, end: i }; }, eventRangeToSegs: function (t, e, n) { var i, r = this.eventRangeToSpans(t, e), s = []; for (i = 0; i < r.length; i++) s.push.apply(s, this.eventSpanToSegs(r[i], e, n)); return s; }, eventRangeToSpans: function (e, n) { return [t.extend({}, e)]; }, eventSpanToSegs: function (t, e, n) { var i, r, s = n ? n(t) : this.spanToSegs(t); for (i = 0; i < s.length; i++) (r = s[i]), (r.event = e), (r.eventStartMS = +t.start), (r.eventDurationMS = t.end - t.start); return s; }, invertRanges: function (t) { var e, n, i = this.view, r = i.start.clone(), s = i.end.clone(), o = [], l = r; for (t.sort(Lt), e = 0; e < t.length; e++) (n = t[e]), n.start > l && o.push({ start: l, end: n.start }), (l = n.end); return l < s && o.push({ start: l, end: s }), o; }, sortEventSegs: function (t) { t.sort(lt(this, 'compareEventSegs')); }, compareEventSegs: function (t, e) { return ( t.eventStartMS - e.eventStartMS || e.eventDurationMS - t.eventDurationMS || e.event.allDay - t.event.allDay || M(t.event, e.event, this.view.eventOrderSpecs) ); }, }), (qt.pluckEventDateProps = Ht), (qt.isBgEvent = Rt), (qt.dataAttrPrefix = ''); var ye = (qt.DayTableMixin = { breakOnWeeks: !1, dayDates: null, dayIndices: null, daysPerRow: null, rowCnt: null, colCnt: null, colHeadFormat: null, updateDayTable: function () { for (var t, e, n, i = this.view, r = this.start.clone(), s = -1, o = [], l = []; r.isBefore(this.end); ) i.isHiddenDay(r) ? o.push(s + 0.5) : (s++, o.push(s), l.push(r.clone())), r.add(1, 'days'); if (this.breakOnWeeks) { for (e = l[0].day(), t = 1; t < l.length && l[t].day() != e; t++); n = Math.ceil(l.length / t); } else (n = 1), (t = l.length); (this.dayDates = l), (this.dayIndices = o), (this.daysPerRow = t), (this.rowCnt = n), this.updateDayTableCols(); }, updateDayTableCols: function () { (this.colCnt = this.computeColCnt()), (this.colHeadFormat = this.view.opt('columnFormat') || this.computeColHeadFormat()); }, computeColCnt: function () { return this.daysPerRow; }, getCellDate: function (t, e) { return this.dayDates[this.getCellDayIndex(t, e)].clone(); }, getCellRange: function (t, e) { var n = this.getCellDate(t, e), i = n.clone().add(1, 'days'); return { start: n, end: i }; }, getCellDayIndex: function (t, e) { return t * this.daysPerRow + this.getColDayIndex(e); }, getColDayIndex: function (t) { return this.isRTL ? this.colCnt - 1 - t : t; }, getDateDayIndex: function (t) { var e = this.dayIndices, n = t.diff(this.start, 'days'); return n < 0 ? e[0] - 1 : n >= e.length ? e[e.length - 1] + 1 : e[n]; }, computeColHeadFormat: function () { return this.rowCnt > 1 || this.colCnt > 10 ? 'ddd' : this.colCnt > 1 ? this.view.opt('dayOfMonthFormat') : 'dddd'; }, sliceRangeByRow: function (t) { var e, n, i, r, s, o = this.daysPerRow, l = this.view.computeDayRange(t), a = this.getDateDayIndex(l.start), u = this.getDateDayIndex(l.end.clone().subtract(1, 'days')), c = []; for (e = 0; e < this.rowCnt; e++) (n = e * o), (i = n + o - 1), (r = Math.max(a, n)), (s = Math.min(u, i)), (r = Math.ceil(r)), (s = Math.floor(s)), r <= s && c.push({ row: e, firstRowDayIndex: r - n, lastRowDayIndex: s - n, isStart: r === a, isEnd: s === u }); return c; }, sliceRangeByDay: function (t) { var e, n, i, r, s, o, l = this.daysPerRow, a = this.view.computeDayRange(t), u = this.getDateDayIndex(a.start), c = this.getDateDayIndex(a.end.clone().subtract(1, 'days')), d = []; for (e = 0; e < this.rowCnt; e++) for (n = e * l, i = n + l - 1, r = n; r <= i; r++) (s = Math.max(u, r)), (o = Math.min(c, r)), (s = Math.ceil(s)), (o = Math.floor(o)), s <= o && d.push({ row: e, firstRowDayIndex: s - n, lastRowDayIndex: o - n, isStart: s === u, isEnd: o === c }); return d; }, renderHeadHtml: function () { var t = this.view; return '
' + this.renderHeadTrHtml() + '
'; }, renderHeadIntroHtml: function () { return this.renderIntroHtml(); }, renderHeadTrHtml: function () { return ( '' + (this.isRTL ? '' : this.renderHeadIntroHtml()) + this.renderHeadDateCellsHtml() + (this.isRTL ? this.renderHeadIntroHtml() : '') + '' ); }, renderHeadDateCellsHtml: function () { var t, e, n = []; for (t = 0; t < this.colCnt; t++) (e = this.getCellDate(0, t)), n.push(this.renderHeadDateCellHtml(e)); return n.join(''); }, renderHeadDateCellHtml: function (t, e, n) { var i = this.view, r = ['fc-day-header', i.widgetHeaderClass]; return ( 1 === this.rowCnt ? (r = r.concat(this.getDayClasses(t, !0))) : r.push('fc-' + Xt[t.day()]), ' 1 ? ' colspan="' + e + '"' : '') + (n ? ' ' + n : '') + '>' + i.buildGotoAnchorHtml({ date: t, forceOff: this.rowCnt > 1 || 1 === this.colCnt }, tt(t.format(this.colHeadFormat))) + '' ); }, renderBgTrHtml: function (t) { return ( '' + (this.isRTL ? '' : this.renderBgIntroHtml(t)) + this.renderBgCellsHtml(t) + (this.isRTL ? this.renderBgIntroHtml(t) : '') + '' ); }, renderBgIntroHtml: function (t) { return this.renderIntroHtml(); }, renderBgCellsHtml: function (t) { var e, n, i = []; for (e = 0; e < this.colCnt; e++) (n = this.getCellDate(t, e)), i.push(this.renderBgCellHtml(n)); return i.join(''); }, renderBgCellHtml: function (t, e) { var n = this.view, i = this.getDayClasses(t); return ( i.unshift('fc-day', n.widgetContentClass), '' ); }, renderIntroHtml: function () {}, bookendCells: function (t) { var e = this.renderIntroHtml(); e && (this.isRTL ? t.append(e) : t.prepend(e)); }, }), Se = (qt.DayGrid = me.extend(ye, { numbersVisible: !1, bottomCoordPadding: 0, rowEls: null, cellEls: null, helperEls: null, rowCoordCache: null, colCoordCache: null, renderDates: function (t) { var e, n, i = this.view, r = this.rowCnt, s = this.colCnt, o = ''; for (e = 0; e < r; e++) o += this.renderDayRowHtml(e, t); for ( this.el.html(o), this.rowEls = this.el.find('.fc-row'), this.cellEls = this.el.find('.fc-day'), this.rowCoordCache = new fe({ els: this.rowEls, isVertical: !0 }), this.colCoordCache = new fe({ els: this.cellEls.slice(0, this.colCnt), isHorizontal: !0 }), e = 0; e < r; e++ ) for (n = 0; n < s; n++) i.publiclyTrigger('dayRender', null, this.getCellDate(e, n), this.getCellEl(e, n)); }, unrenderDates: function () { this.removeSegPopover(); }, renderBusinessHours: function () { var t = this.buildBusinessHourSegs(!0); this.renderFill('businessHours', t, 'bgevent'); }, unrenderBusinessHours: function () { this.unrenderFill('businessHours'); }, renderDayRowHtml: function (t, e) { var n = this.view, i = ['fc-row', 'fc-week', n.widgetContentClass]; return ( e && i.push('fc-rigid'), '
' + this.renderBgTrHtml(t) + '
' + (this.numbersVisible ? '' + this.renderNumberTrHtml(t) + '' : '') + '
' ); }, renderNumberTrHtml: function (t) { return ( '' + (this.isRTL ? '' : this.renderNumberIntroHtml(t)) + this.renderNumberCellsHtml(t) + (this.isRTL ? this.renderNumberIntroHtml(t) : '') + '' ); }, renderNumberIntroHtml: function (t) { return this.renderIntroHtml(); }, renderNumberCellsHtml: function (t) { var e, n, i = []; for (e = 0; e < this.colCnt; e++) (n = this.getCellDate(t, e)), i.push(this.renderNumberCellHtml(n)); return i.join(''); }, renderNumberCellHtml: function (t) { var e, n, i = ''; return this.view.dayNumbersVisible || this.view.cellWeekNumbersVisible ? ((e = this.getDayClasses(t)), e.unshift('fc-day-top'), this.view.cellWeekNumbersVisible && (n = 'ISO' === t._locale._fullCalendar_weekCalc ? 1 : t._locale.firstDayOfWeek()), (i += ''), this.view.cellWeekNumbersVisible && t.day() == n && (i += this.view.buildGotoAnchorHtml({ date: t, type: 'week' }, { class: 'fc-week-number' }, t.format('w'))), this.view.dayNumbersVisible && (i += this.view.buildGotoAnchorHtml(t, { class: 'fc-day-number' }, t.date())), (i += '')) : ''; }, computeEventTimeFormat: function () { return this.view.opt('extraSmallTimeFormat'); }, computeDisplayEventEnd: function () { return 1 == this.colCnt; }, rangeUpdated: function () { this.updateDayTable(); }, spanToSegs: function (t) { var e, n, i = this.sliceRangeByRow(t); for (e = 0; e < i.length; e++) (n = i[e]), this.isRTL ? ((n.leftCol = this.daysPerRow - 1 - n.lastRowDayIndex), (n.rightCol = this.daysPerRow - 1 - n.firstRowDayIndex)) : ((n.leftCol = n.firstRowDayIndex), (n.rightCol = n.lastRowDayIndex)); return i; }, prepareHits: function () { this.colCoordCache.build(), this.rowCoordCache.build(), (this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding); }, releaseHits: function () { this.colCoordCache.clear(), this.rowCoordCache.clear(); }, queryHit: function (t, e) { if (this.colCoordCache.isLeftInBounds(t) && this.rowCoordCache.isTopInBounds(e)) { var n = this.colCoordCache.getHorizontalIndex(t), i = this.rowCoordCache.getVerticalIndex(e); if (null != i && null != n) return this.getCellHit(i, n); } }, getHitSpan: function (t) { return this.getCellRange(t.row, t.col); }, getHitEl: function (t) { return this.getCellEl(t.row, t.col); }, getCellHit: function (t, e) { return { row: t, col: e, component: this, left: this.colCoordCache.getLeftOffset(e), right: this.colCoordCache.getRightOffset(e), top: this.rowCoordCache.getTopOffset(t), bottom: this.rowCoordCache.getBottomOffset(t), }; }, getCellEl: function (t, e) { return this.cellEls.eq(t * this.colCnt + e); }, renderDrag: function (t, e) { if ((this.renderHighlight(this.eventToSpan(t)), e && e.component !== this)) return this.renderEventLocationHelper(t, e); }, unrenderDrag: function () { this.unrenderHighlight(), this.unrenderHelper(); }, renderEventResize: function (t, e) { return this.renderHighlight(this.eventToSpan(t)), this.renderEventLocationHelper(t, e); }, unrenderEventResize: function () { this.unrenderHighlight(), this.unrenderHelper(); }, renderHelper: function (e, n) { var i, r = [], s = this.eventToSegs(e); return ( (s = this.renderFgSegEls(s)), (i = this.renderSegRows(s)), this.rowEls.each(function (e, s) { var o, l = t(s), a = t('
'); (o = n && n.row === e ? n.el.position().top : l.find('.fc-content-skeleton tbody').position().top), a.css('top', o).find('table').append(i[e].tbodyEl), l.append(a), r.push(a[0]); }), (this.helperEls = t(r)) ); }, unrenderHelper: function () { this.helperEls && (this.helperEls.remove(), (this.helperEls = null)); }, fillSegTag: 'td', renderFill: function (e, n, i) { var r, s, o, l = []; for (n = this.renderFillSegEls(e, n), r = 0; r < n.length; r++) (s = n[r]), (o = this.renderFillRow(e, s, i)), this.rowEls.eq(s.row).append(o), l.push(o[0]); return (this.elsByFill[e] = t(l)), n; }, renderFillRow: function (e, n, i) { var r, s, o = this.colCnt, l = n.leftCol, a = n.rightCol + 1; return ( (i = i || e.toLowerCase()), (r = t('
')), (s = r.find('tr')), l > 0 && s.append(''), s.append(n.el.attr('colspan', a - l)), a < o && s.append(''), this.bookendCells(s), r ); }, })); Se.mixin({ rowStructs: null, unrenderEvents: function () { this.removeSegPopover(), me.prototype.unrenderEvents.apply(this, arguments); }, getEventSegs: function () { return me.prototype.getEventSegs.call(this).concat(this.popoverSegs || []); }, renderBgSegs: function (e) { var n = t.grep(e, function (t) { return t.event.allDay; }); return me.prototype.renderBgSegs.call(this, n); }, renderFgSegs: function (e) { var n; return ( (e = this.renderFgSegEls(e)), (n = this.rowStructs = this.renderSegRows(e)), this.rowEls.each(function (e, i) { t(i).find('.fc-content-skeleton > table').append(n[e].tbodyEl); }), e ); }, unrenderFgSegs: function () { for (var t, e = this.rowStructs || []; (t = e.pop()); ) t.tbodyEl.remove(); this.rowStructs = null; }, renderSegRows: function (t) { var e, n, i = []; for (e = this.groupSegRows(t), n = 0; n < e.length; n++) i.push(this.renderSegRow(n, e[n])); return i; }, fgSegHtml: function (t, e) { var n, i, r = this.view, s = t.event, o = r.isEventDraggable(s), l = !e && s.allDay && t.isStart && r.isEventResizableFromStart(s), a = !e && s.allDay && t.isEnd && r.isEventResizableFromEnd(s), u = this.getSegClasses(t, o, l || a), c = nt(this.getSegSkinCss(t)), d = ''; return ( u.unshift('fc-day-grid-event', 'fc-h-event'), t.isStart && ((n = this.getEventTimeText(s)), n && (d = '' + tt(n) + '')), (i = '' + (tt(s.title || '') || ' ') + ''), '
' + (this.isRTL ? i + ' ' + d : d + ' ' + i) + '
' + (l ? '
' : '') + (a ? '
' : '') + '' ); }, renderSegRow: function (e, n) { function i(e) { for (; o < e; ) (c = (m[r - 1] || [])[o]), c ? c.attr('rowspan', parseInt(c.attr('rowspan') || 1, 10) + 1) : ((c = t('')), l.append(c)), (v[r][o] = c), (m[r][o] = c), o++; } var r, s, o, l, a, u, c, d = this.colCnt, h = this.buildSegLevels(n), f = Math.max(1, h.length), g = t(''), p = [], v = [], m = []; for (r = 0; r < f; r++) { if (((s = h[r]), (o = 0), (l = t('')), p.push([]), v.push([]), m.push([]), s)) for (a = 0; a < s.length; a++) { for ( u = s[a], i(u.leftCol), c = t('').append(u.el), u.leftCol != u.rightCol ? c.attr('colspan', u.rightCol - u.leftCol + 1) : (m[r][o] = c); o <= u.rightCol; ) (v[r][o] = c), (p[r][o] = u), o++; l.append(c); } i(d), this.bookendCells(l), g.append(l); } return { row: e, tbodyEl: g, cellMatrix: v, segMatrix: p, segLevels: h, segs: n }; }, buildSegLevels: function (t) { var e, n, i, r = []; for (this.sortEventSegs(t), e = 0; e < t.length; e++) { for (n = t[e], i = 0; i < r.length && Bt(n, r[i]); i++); (n.level = i), (r[i] || (r[i] = [])).push(n); } for (i = 0; i < r.length; i++) r[i].sort(zt); return r; }, groupSegRows: function (t) { var e, n = []; for (e = 0; e < this.rowCnt; e++) n.push([]); for (e = 0; e < t.length; e++) n[t[e].row].push(t[e]); return n; }, }), Se.mixin({ segPopover: null, popoverSegs: null, removeSegPopover: function () { this.segPopover && this.segPopover.hide(); }, limitRows: function (t) { var e, n, i = this.rowStructs || []; for (e = 0; e < i.length; e++) this.unlimitRow(e), (n = !!t && ('number' == typeof t ? t : this.computeRowLevelLimit(e))), n !== !1 && this.limitRow(e, n); }, computeRowLevelLimit: function (e) { function n(e, n) { s = Math.max(s, t(n).outerHeight()); } var i, r, s, o = this.rowEls.eq(e), l = o.height(), a = this.rowStructs[e].tbodyEl.children(); for (i = 0; i < a.length; i++) if (((r = a.eq(i).removeClass('fc-limited')), (s = 0), r.find('> td > :first-child').each(n), r.position().top + s > l)) return i; return !1; }, limitRow: function (e, n) { function i(i) { for (; b < i; ) (u = S.getCellSegs(e, b, n)), u.length && ((h = s[n - 1][b]), (y = S.renderMoreLink(e, b, u)), (m = t('
').append(y)), h.append(m), E.push(m[0])), b++; } var r, s, o, l, a, u, c, d, h, f, g, p, v, m, y, S = this, w = this.rowStructs[e], E = [], b = 0; if (n && n < w.segLevels.length) { for ( r = w.segLevels[n - 1], s = w.cellMatrix, o = w.tbodyEl.children().slice(n).addClass('fc-limited').get(), l = 0; l < r.length; l++ ) { for (a = r[l], i(a.leftCol), d = [], c = 0; b <= a.rightCol; ) (u = this.getCellSegs(e, b, n)), d.push(u), (c += u.length), b++; if (c) { for (h = s[n - 1][a.leftCol], f = h.attr('rowspan') || 1, g = [], p = 0; p < d.length; p++) (v = t('').attr('rowspan', f)), (u = d[p]), (y = this.renderMoreLink(e, a.leftCol + p, [a].concat(u))), (m = t('
').append(y)), v.append(m), g.push(v[0]), E.push(v[0]); h.addClass('fc-limited').after(t(g)), o.push(h[0]); } } i(this.colCnt), (w.moreEls = t(E)), (w.limitedEls = t(o)); } }, unlimitRow: function (t) { var e = this.rowStructs[t]; e.moreEls && (e.moreEls.remove(), (e.moreEls = null)), e.limitedEls && (e.limitedEls.removeClass('fc-limited'), (e.limitedEls = null)); }, renderMoreLink: function (e, n, i) { var r = this, s = this.view; return t('') .text(this.getMoreLinkText(i.length)) .on('click', function (o) { var l = s.opt('eventLimitClick'), a = r.getCellDate(e, n), u = t(this), c = r.getCellEl(e, n), d = r.getCellSegs(e, n), h = r.resliceDaySegs(d, a), f = r.resliceDaySegs(i, a); 'function' == typeof l && (l = s.publiclyTrigger('eventLimitClick', null, { date: a, dayEl: c, moreEl: u, segs: h, hiddenSegs: f }, o)), 'popover' === l ? r.showSegPopover(e, n, u, h) : 'string' == typeof l && s.calendar.zoomTo(a, l); }); }, showSegPopover: function (t, e, n, i) { var r, s, o = this, l = this.view, a = n.parent(); (r = 1 == this.rowCnt ? l.el : this.rowEls.eq(t)), (s = { className: 'fc-more-popover', content: this.renderSegPopoverContent(t, e, i), parentEl: this.view.el, top: r.offset().top, autoHide: !0, viewportConstrain: l.opt('popoverViewportConstrain'), hide: function () { if (o.popoverSegs) for (var t, e = 0; e < o.popoverSegs.length; ++e) (t = o.popoverSegs[e]), l.publiclyTrigger('eventDestroy', t.event, t.event, t.el); o.segPopover.removeElement(), (o.segPopover = null), (o.popoverSegs = null); }, }), this.isRTL ? (s.right = a.offset().left + a.outerWidth() + 1) : (s.left = a.offset().left - 1), (this.segPopover = new he(s)), this.segPopover.show(), this.bindSegHandlersToEl(this.segPopover.el); }, renderSegPopoverContent: function (e, n, i) { var r, s = this.view, o = s.opt('theme'), l = this.getCellDate(e, n).format(s.opt('dayPopoverFormat')), a = t( '
' + tt(l) + '
' ), u = a.find('.fc-event-container'); for (i = this.renderFgSegEls(i, !0), this.popoverSegs = i, r = 0; r < i.length; r++) this.prepareHits(), (i[r].hit = this.getCellHit(e, n)), this.releaseHits(), u.append(i[r].el); return a; }, resliceDaySegs: function (e, n) { var i = t.map(e, function (t) { return t.event; }), r = n.clone(), s = r.clone().add(1, 'days'), o = { start: r, end: s }; return ( (e = this.eventsToSegs(i, function (t) { var e = F(t, o); return e ? [e] : []; })), this.sortEventSegs(e), e ); }, getMoreLinkText: function (t) { var e = this.view.opt('eventLimitText'); return 'function' == typeof e ? e(t) : '+' + t + ' ' + e; }, getCellSegs: function (t, e, n) { for (var i, r = this.rowStructs[t].segMatrix, s = n || 0, o = []; s < r.length; ) (i = r[s][e]), i && o.push(i), s++; return o; }, }); var we = (qt.TimeGrid = me.extend(ye, { slotDuration: null, snapDuration: null, snapsPerSlot: null, minTime: null, maxTime: null, labelFormat: null, labelInterval: null, colEls: null, slatContainerEl: null, slatEls: null, nowIndicatorEls: null, colCoordCache: null, slatCoordCache: null, constructor: function () { me.apply(this, arguments), this.processOptions(); }, renderDates: function () { this.el.html(this.renderHtml()), (this.colEls = this.el.find('.fc-day')), (this.slatContainerEl = this.el.find('.fc-slats')), (this.slatEls = this.slatContainerEl.find('tr')), (this.colCoordCache = new fe({ els: this.colEls, isHorizontal: !0 })), (this.slatCoordCache = new fe({ els: this.slatEls, isVertical: !0 })), this.renderContentSkeleton(); }, renderHtml: function () { return ( '
' + this.renderBgTrHtml(0) + '
' + this.renderSlatRowHtml() + '
' ); }, renderSlatRowHtml: function () { for (var t, n, i, r = this.view, s = this.isRTL, o = '', l = e.duration(+this.minTime); l < this.maxTime; ) (t = this.start.clone().time(l)), (n = ot(_(l, this.labelInterval))), (i = '' + (n ? '' + tt(t.format(this.labelFormat)) + '' : '') + ''), (o += '' + (s ? '' : i) + '' + (s ? i : '') + ''), l.add(this.slotDuration); return o; }, processOptions: function () { var n, i = this.view, r = i.opt('slotDuration'), s = i.opt('snapDuration'); (r = e.duration(r)), (s = s ? e.duration(s) : r), (this.slotDuration = r), (this.snapDuration = s), (this.snapsPerSlot = r / s), (this.minResizeDuration = s), (this.minTime = e.duration(i.opt('minTime'))), (this.maxTime = e.duration(i.opt('maxTime'))), (n = i.opt('slotLabelFormat')), t.isArray(n) && (n = n[n.length - 1]), (this.labelFormat = n || i.opt('smallTimeFormat')), (n = i.opt('slotLabelInterval')), (this.labelInterval = n ? e.duration(n) : this.computeLabelInterval(r)); }, computeLabelInterval: function (t) { var n, i, r; for (n = Oe.length - 1; n >= 0; n--) if (((i = e.duration(Oe[n])), (r = _(i, t)), ot(r) && r > 1)) return i; return e.duration(t); }, computeEventTimeFormat: function () { return this.view.opt('noMeridiemTimeFormat'); }, computeDisplayEventEnd: function () { return !0; }, prepareHits: function () { this.colCoordCache.build(), this.slatCoordCache.build(); }, releaseHits: function () { this.colCoordCache.clear(); }, queryHit: function (t, e) { var n = this.snapsPerSlot, i = this.colCoordCache, r = this.slatCoordCache; if (i.isLeftInBounds(t) && r.isTopInBounds(e)) { var s = i.getHorizontalIndex(t), o = r.getVerticalIndex(e); if (null != s && null != o) { var l = r.getTopOffset(o), a = r.getHeight(o), u = (e - l) / a, c = Math.floor(u * n), d = o * n + c, h = l + (c / n) * a, f = l + ((c + 1) / n) * a; return { col: s, snap: d, component: this, left: i.getLeftOffset(s), right: i.getRightOffset(s), top: h, bottom: f }; } } }, getHitSpan: function (t) { var e, n = this.getCellDate(0, t.col), i = this.computeSnapTime(t.snap); return n.time(i), (e = n.clone().add(this.snapDuration)), { start: n, end: e }; }, getHitEl: function (t) { return this.colEls.eq(t.col); }, rangeUpdated: function () { this.updateDayTable(); }, computeSnapTime: function (t) { return e.duration(this.minTime + this.snapDuration * t); }, spanToSegs: function (t) { var e, n = this.sliceRangeByTimes(t); for (e = 0; e < n.length; e++) this.isRTL ? (n[e].col = this.daysPerRow - 1 - n[e].dayIndex) : (n[e].col = n[e].dayIndex); return n; }, sliceRangeByTimes: function (t) { var e, n, i, r, s = []; for (n = 0; n < this.daysPerRow; n++) (i = this.dayDates[n].clone()), (r = { start: i.clone().time(this.minTime), end: i.clone().time(this.maxTime) }), (e = F(t, r)), e && ((e.dayIndex = n), s.push(e)); return s; }, updateSize: function (t) { this.slatCoordCache.build(), t && this.updateSegVerticals([].concat(this.fgSegs || [], this.bgSegs || [], this.businessSegs || [])); }, getTotalSlatHeight: function () { return this.slatContainerEl.outerHeight(); }, computeDateTop: function (t, n) { return this.computeTimeTop(e.duration(t - n.clone().stripTime())); }, computeTimeTop: function (t) { var e, n, i = this.slatEls.length, r = (t - this.minTime) / this.slotDuration; return ( (r = Math.max(0, r)), (r = Math.min(i, r)), (e = Math.floor(r)), (e = Math.min(e, i - 1)), (n = r - e), this.slatCoordCache.getTopPosition(e) + this.slatCoordCache.getHeight(e) * n ); }, renderDrag: function (t, e) { return e ? this.renderEventLocationHelper(t, e) : void this.renderHighlight(this.eventToSpan(t)); }, unrenderDrag: function () { this.unrenderHelper(), this.unrenderHighlight(); }, renderEventResize: function (t, e) { return this.renderEventLocationHelper(t, e); }, unrenderEventResize: function () { this.unrenderHelper(); }, renderHelper: function (t, e) { return this.renderHelperSegs(this.eventToSegs(t), e); }, unrenderHelper: function () { this.unrenderHelperSegs(); }, renderBusinessHours: function () { this.renderBusinessSegs(this.buildBusinessHourSegs()); }, unrenderBusinessHours: function () { this.unrenderBusinessSegs(); }, getNowIndicatorUnit: function () { return 'minute'; }, renderNowIndicator: function (e) { var n, i = this.spanToSegs({ start: e, end: e }), r = this.computeDateTop(e, e), s = []; for (n = 0; n < i.length; n++) s.push( t('
').css('top', r).appendTo(this.colContainerEls.eq(i[n].col))[0] ); i.length > 0 && s.push( t('
').css('top', r).appendTo(this.el.find('.fc-content-skeleton'))[0] ), (this.nowIndicatorEls = t(s)); }, unrenderNowIndicator: function () { this.nowIndicatorEls && (this.nowIndicatorEls.remove(), (this.nowIndicatorEls = null)); }, renderSelection: function (t) { this.view.opt('selectHelper') ? this.renderEventLocationHelper(t) : this.renderHighlight(t); }, unrenderSelection: function () { this.unrenderHelper(), this.unrenderHighlight(); }, renderHighlight: function (t) { this.renderHighlightSegs(this.spanToSegs(t)); }, unrenderHighlight: function () { this.unrenderHighlightSegs(); }, })); we.mixin({ colContainerEls: null, fgContainerEls: null, bgContainerEls: null, helperContainerEls: null, highlightContainerEls: null, businessContainerEls: null, fgSegs: null, bgSegs: null, helperSegs: null, highlightSegs: null, businessSegs: null, renderContentSkeleton: function () { var e, n, i = ''; for (e = 0; e < this.colCnt; e++) i += '
'; (n = t('
' + i + '
')), (this.colContainerEls = n.find('.fc-content-col')), (this.helperContainerEls = n.find('.fc-helper-container')), (this.fgContainerEls = n.find('.fc-event-container:not(.fc-helper-container)')), (this.bgContainerEls = n.find('.fc-bgevent-container')), (this.highlightContainerEls = n.find('.fc-highlight-container')), (this.businessContainerEls = n.find('.fc-business-container')), this.bookendCells(n.find('tr')), this.el.append(n); }, renderFgSegs: function (t) { return (t = this.renderFgSegsIntoContainers(t, this.fgContainerEls)), (this.fgSegs = t), t; }, unrenderFgSegs: function () { this.unrenderNamedSegs('fgSegs'); }, renderHelperSegs: function (e, n) { var i, r, s, o = []; for (e = this.renderFgSegsIntoContainers(e, this.helperContainerEls), i = 0; i < e.length; i++) (r = e[i]), n && n.col === r.col && ((s = n.el), r.el.css({ left: s.css('left'), right: s.css('right'), 'margin-left': s.css('margin-left'), 'margin-right': s.css('margin-right'), })), o.push(r.el[0]); return (this.helperSegs = e), t(o); }, unrenderHelperSegs: function () { this.unrenderNamedSegs('helperSegs'); }, renderBgSegs: function (t) { return ( (t = this.renderFillSegEls('bgEvent', t)), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.bgContainerEls), (this.bgSegs = t), t ); }, unrenderBgSegs: function () { this.unrenderNamedSegs('bgSegs'); }, renderHighlightSegs: function (t) { (t = this.renderFillSegEls('highlight', t)), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.highlightContainerEls), (this.highlightSegs = t); }, unrenderHighlightSegs: function () { this.unrenderNamedSegs('highlightSegs'); }, renderBusinessSegs: function (t) { (t = this.renderFillSegEls('businessHours', t)), this.updateSegVerticals(t), this.attachSegsByCol(this.groupSegsByCol(t), this.businessContainerEls), (this.businessSegs = t); }, unrenderBusinessSegs: function () { this.unrenderNamedSegs('businessSegs'); }, groupSegsByCol: function (t) { var e, n = []; for (e = 0; e < this.colCnt; e++) n.push([]); for (e = 0; e < t.length; e++) n[t[e].col].push(t[e]); return n; }, attachSegsByCol: function (t, e) { var n, i, r; for (n = 0; n < this.colCnt; n++) for (i = t[n], r = 0; r < i.length; r++) e.eq(n).append(i[r].el); }, unrenderNamedSegs: function (t) { var e, n = this[t]; if (n) { for (e = 0; e < n.length; e++) n[e].el.remove(); this[t] = null; } }, renderFgSegsIntoContainers: function (t, e) { var n, i; for (t = this.renderFgSegEls(t), n = this.groupSegsByCol(t), i = 0; i < this.colCnt; i++) this.updateFgSegCoords(n[i]); return this.attachSegsByCol(n, e), t; }, fgSegHtml: function (t, e) { var n, i, r, s = this.view, o = t.event, l = s.isEventDraggable(o), a = !e && t.isStart && s.isEventResizableFromStart(o), u = !e && t.isEnd && s.isEventResizableFromEnd(o), c = this.getSegClasses(t, l, a || u), d = nt(this.getSegSkinCss(t)); return ( c.unshift('fc-time-grid-event', 'fc-v-event'), s.isMultiDayEvent(o) ? (t.isStart || t.isEnd) && ((n = this.getEventTimeText(t)), (i = this.getEventTimeText(t, 'LT')), (r = this.getEventTimeText(t, null, !1))) : ((n = this.getEventTimeText(o)), (i = this.getEventTimeText(o, 'LT')), (r = this.getEventTimeText(o, null, !1))), '
' + (n ? '
' + tt(n) + '
' : '') + (o.title ? '
' + tt(o.title) + '
' : '') + '
' + (u ? '
' : '') + '' ); }, updateSegVerticals: function (t) { this.computeSegVerticals(t), this.assignSegVerticals(t); }, computeSegVerticals: function (t) { var e, n; for (e = 0; e < t.length; e++) (n = t[e]), (n.top = this.computeDateTop(n.start, n.start)), (n.bottom = this.computeDateTop(n.end, n.start)); }, assignSegVerticals: function (t) { var e, n; for (e = 0; e < t.length; e++) (n = t[e]), n.el.css(this.generateSegVerticalCss(n)); }, generateSegVerticalCss: function (t) { return { top: t.top, bottom: -t.bottom }; }, updateFgSegCoords: function (t) { this.computeSegVerticals(t), this.computeFgSegHorizontals(t), this.assignSegVerticals(t), this.assignFgSegHorizontals(t); }, computeFgSegHorizontals: function (t) { var e, n, i; if ((this.sortEventSegs(t), (e = Ft(t)), Nt(e), (n = e[0]))) { for (i = 0; i < n.length; i++) Gt(n[i]); for (i = 0; i < n.length; i++) this.computeFgSegForwardBack(n[i], 0, 0); } }, computeFgSegForwardBack: function (t, e, n) { var i, r = t.forwardSegs; if (void 0 === t.forwardCoord) for ( r.length ? (this.sortForwardSegs(r), this.computeFgSegForwardBack(r[0], e + 1, n), (t.forwardCoord = r[0].backwardCoord)) : (t.forwardCoord = 1), t.backwardCoord = t.forwardCoord - (t.forwardCoord - n) / (e + 1), i = 0; i < r.length; i++ ) this.computeFgSegForwardBack(r[i], 0, t.forwardCoord); }, sortForwardSegs: function (t) { t.sort(lt(this, 'compareForwardSegs')); }, compareForwardSegs: function (t, e) { return e.forwardPressure - t.forwardPressure || (t.backwardCoord || 0) - (e.backwardCoord || 0) || this.compareEventSegs(t, e); }, assignFgSegHorizontals: function (t) { var e, n; for (e = 0; e < t.length; e++) (n = t[e]), n.el.css(this.generateFgSegHorizontalCss(n)), n.bottom - n.top < 30 && n.el.addClass('fc-short'); }, generateFgSegHorizontalCss: function (t) { var e, n, i = this.view.opt('slotEventOverlap'), r = t.backwardCoord, s = t.forwardCoord, o = this.generateSegVerticalCss(t); return ( i && (s = Math.min(1, r + 2 * (s - r))), this.isRTL ? ((e = 1 - s), (n = r)) : ((e = r), (n = 1 - s)), (o.zIndex = t.level + 1), (o.left = 100 * e + '%'), (o.right = 100 * n + '%'), i && t.forwardPressure && (o[this.isRTL ? 'marginLeft' : 'marginRight'] = 20), o ); }, }); var Ee = (qt.View = St.extend(ue, ce, { type: null, name: null, title: null, calendar: null, options: null, el: null, isDateSet: !1, isDateRendered: !1, dateRenderQueue: null, isEventsBound: !1, isEventsSet: !1, isEventsRendered: !1, eventRenderQueue: null, start: null, end: null, intervalStart: null, intervalEnd: null, intervalDuration: null, intervalUnit: null, isRTL: !1, isSelected: !1, selectedEvent: null, eventOrderSpecs: null, widgetHeaderClass: null, widgetContentClass: null, highlightStateClass: null, nextDayThreshold: null, isHiddenDayHash: null, isNowIndicatorRendered: null, initialNowDate: null, initialNowQueriedMs: null, nowIndicatorTimeoutID: null, nowIndicatorIntervalID: null, constructor: function (t, n, i, r) { (this.calendar = t), (this.type = this.name = n), (this.options = i), (this.intervalDuration = r || e.duration(1, 'day')), (this.nextDayThreshold = e.duration(this.opt('nextDayThreshold'))), this.initThemingProps(), this.initHiddenDays(), (this.isRTL = this.opt('isRTL')), (this.eventOrderSpecs = L(this.opt('eventOrder'))), (this.dateRenderQueue = new Dt()), (this.eventRenderQueue = new Dt(this.opt('eventRenderWait'))), this.initialize(); }, initialize: function () {}, opt: function (t) { return this.options[t]; }, publiclyTrigger: function (t, e) { var n = this.calendar; return n.publiclyTrigger.apply(n, [t, e || this].concat(Array.prototype.slice.call(arguments, 2), [this])); }, rejectOn: function (t, e) { var n = this; return new bt(function (i, r) { function s() { n.off(t, r); } n.one(t, r), e.then( function (t) { s(), i(t); }, function () { s(), r(); } ); }); }, setRange: function (e) { t.extend(this, e), this.updateTitle(); }, computeRange: function (t) { var e, n, i = A(this.intervalDuration), r = t.clone().startOf(i), s = r.clone().add(this.intervalDuration); return ( /year|month|week|day/.test(i) ? (r.stripTime(), s.stripTime()) : (r.hasTime() || (r = this.calendar.time(0)), s.hasTime() || (s = this.calendar.time(0))), (e = r.clone()), (e = this.skipHiddenDays(e)), (n = s.clone()), (n = this.skipHiddenDays(n, -1, !0)), { intervalUnit: i, intervalStart: r, intervalEnd: s, start: e, end: n } ); }, computePrevDate: function (t) { return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).subtract(this.intervalDuration), -1); }, computeNextDate: function (t) { return this.massageCurrentDate(t.clone().startOf(this.intervalUnit).add(this.intervalDuration)); }, massageCurrentDate: function (t, e) { return this.intervalDuration.as('days') <= 1 && this.isHiddenDay(t) && ((t = this.skipHiddenDays(t, e)), t.startOf('day')), t; }, updateTitle: function () { (this.title = this.computeTitle()), this.calendar.setToolbarsTitle(this.title); }, computeTitle: function () { return this.formatRange( { start: this.calendar.applyTimezone(this.intervalStart), end: this.calendar.applyTimezone(this.intervalEnd) }, this.opt('titleFormat') || this.computeTitleFormat(), this.opt('titleRangeSeparator') ); }, computeTitleFormat: function () { return 'year' == this.intervalUnit ? 'YYYY' : 'month' == this.intervalUnit ? this.opt('monthYearFormat') : this.intervalDuration.as('days') > 1 ? 'll' : 'LL'; }, formatRange: function (t, e, n) { var i = t.end; return i.hasTime() || (i = i.clone().subtract(1)), gt(t.start, i, e, n, this.opt('isRTL')); }, getAllDayHtml: function () { return this.opt('allDayHtml') || tt(this.opt('allDayText')); }, buildGotoAnchorHtml: function (e, n, i) { var r, s, o, l; return ( t.isPlainObject(e) ? ((r = e.date), (s = e.type), (o = e.forceOff)) : (r = e), (r = qt.moment(r)), (l = { date: r.format('YYYY-MM-DD'), type: s || 'day' }), 'string' == typeof n && ((i = n), (n = null)), (n = n ? ' ' + it(n) : ''), (i = i || ''), !o && this.opt('navLinks') ? '' + i + '' : '' + i + '' ); }, setElement: function (t) { (this.el = t), this.bindGlobalHandlers(), this.renderSkeleton(); }, removeElement: function () { this.unsetDate(), this.unrenderSkeleton(), this.unbindGlobalHandlers(), this.el.remove(); }, renderSkeleton: function () {}, unrenderSkeleton: function () {}, setDate: function (t) { var e = this.isDateSet; (this.isDateSet = !0), this.handleDate(t, e), this.trigger(e ? 'dateReset' : 'dateSet', t); }, unsetDate: function () { this.isDateSet && ((this.isDateSet = !1), this.handleDateUnset(), this.trigger('dateUnset')); }, handleDate: function (t, e) { var n = this; this.unbindEvents(), this.requestDateRender(t).then(function () { n.bindEvents(); }); }, handleDateUnset: function () { this.unbindEvents(), this.requestDateUnrender(); }, requestDateRender: function (t) { var e = this; return this.dateRenderQueue.add(function () { return e.executeDateRender(t); }); }, requestDateUnrender: function () { var t = this; return this.dateRenderQueue.add(function () { return t.executeDateUnrender(); }); }, executeDateRender: function (t) { var e = this; return ( t ? this.captureInitialScroll() : this.captureScroll(), this.freezeHeight(), this.executeDateUnrender().then(function () { t && e.setRange(e.computeRange(t)), e.render && e.render(), e.renderDates(), e.updateSize(), e.renderBusinessHours(), e.startNowIndicator(), e.thawHeight(), e.releaseScroll(), (e.isDateRendered = !0), e.onDateRender(), e.trigger('dateRender'); }) ); }, executeDateUnrender: function () { var t = this; return t.isDateRendered ? this.requestEventsUnrender().then(function () { t.unselect(), t.stopNowIndicator(), t.triggerUnrender(), t.unrenderBusinessHours(), t.unrenderDates(), t.destroy && t.destroy(), (t.isDateRendered = !1), t.trigger('dateUnrender'); }) : bt.resolve(); }, onDateRender: function () { this.triggerRender(); }, renderDates: function () {}, unrenderDates: function () {}, triggerRender: function () { this.publiclyTrigger('viewRender', this, this, this.el); }, triggerUnrender: function () { this.publiclyTrigger('viewDestroy', this, this, this.el); }, bindGlobalHandlers: function () { this.listenTo(t(document), 'mousedown', this.handleDocumentMousedown), this.listenTo(t(document), 'touchstart', this.processUnselect); }, unbindGlobalHandlers: function () { this.stopListeningTo(t(document)); }, initThemingProps: function () { var t = this.opt('theme') ? 'ui' : 'fc'; (this.widgetHeaderClass = t + '-widget-header'), (this.widgetContentClass = t + '-widget-content'), (this.highlightStateClass = t + '-state-highlight'); }, renderBusinessHours: function () {}, unrenderBusinessHours: function () {}, startNowIndicator: function () { var t, n, i, r = this; this.opt('nowIndicator') && ((t = this.getNowIndicatorUnit()), t && ((n = lt(this, 'updateNowIndicator')), (this.initialNowDate = this.calendar.getNow()), (this.initialNowQueriedMs = +new Date()), this.renderNowIndicator(this.initialNowDate), (this.isNowIndicatorRendered = !0), (i = this.initialNowDate.clone().startOf(t).add(1, t) - this.initialNowDate), (this.nowIndicatorTimeoutID = setTimeout(function () { (r.nowIndicatorTimeoutID = null), n(), (i = +e.duration(1, t)), (i = Math.max(100, i)), (r.nowIndicatorIntervalID = setInterval(n, i)); }, i)))); }, updateNowIndicator: function () { this.isNowIndicatorRendered && (this.unrenderNowIndicator(), this.renderNowIndicator(this.initialNowDate.clone().add(new Date() - this.initialNowQueriedMs))); }, stopNowIndicator: function () { this.isNowIndicatorRendered && (this.nowIndicatorTimeoutID && (clearTimeout(this.nowIndicatorTimeoutID), (this.nowIndicatorTimeoutID = null)), this.nowIndicatorIntervalID && (clearTimeout(this.nowIndicatorIntervalID), (this.nowIndicatorIntervalID = null)), this.unrenderNowIndicator(), (this.isNowIndicatorRendered = !1)); }, getNowIndicatorUnit: function () {}, renderNowIndicator: function (t) {}, unrenderNowIndicator: function () {}, updateSize: function (t) { t && this.captureScroll(), this.updateHeight(t), this.updateWidth(t), this.updateNowIndicator(), t && this.releaseScroll(); }, updateWidth: function (t) {}, updateHeight: function (t) { var e = this.calendar; this.setHeight(e.getSuggestedViewHeight(), e.isHeightAuto()); }, setHeight: function (t, e) {}, capturedScroll: null, capturedScrollDepth: 0, captureScroll: function () { return !this.capturedScrollDepth++ && ((this.capturedScroll = this.isDateRendered ? this.queryScroll() : {}), !0); }, captureInitialScroll: function (e) { this.captureScroll() && ((this.capturedScroll.isInitial = !0), e ? t.extend(this.capturedScroll, e) : (this.capturedScroll.isComputed = !0)); }, releaseScroll: function () { var e = this.capturedScroll, n = this.discardScroll(); e.isComputed && (n ? t.extend(e, this.computeInitialScroll()) : (e = null)), e && (e.isInitial ? this.hardSetScroll(e) : this.setScroll(e)); }, discardScroll: function () { return !--this.capturedScrollDepth && ((this.capturedScroll = null), !0); }, computeInitialScroll: function () { return {}; }, queryScroll: function () { return {}; }, hardSetScroll: function (t) { var e = this, n = function () { e.setScroll(t); }; n(), setTimeout(n, 0); }, setScroll: function (t) {}, freezeHeight: function () { this.calendar.freezeContentHeight(); }, thawHeight: function () { this.calendar.thawContentHeight(); }, bindEvents: function () { var t = this; this.isEventsBound || ((this.isEventsBound = !0), this.rejectOn('eventsUnbind', this.requestEvents()).then(function (e) { t.listenTo(t.calendar, 'eventsReset', t.setEvents), t.setEvents(e); })); }, unbindEvents: function () { this.isEventsBound && ((this.isEventsBound = !1), this.stopListeningTo(this.calendar, 'eventsReset'), this.unsetEvents(), this.trigger('eventsUnbind')); }, setEvents: function (t) { var e = this.isEventSet; (this.isEventsSet = !0), this.handleEvents(t, e), this.trigger(e ? 'eventsReset' : 'eventsSet', t); }, unsetEvents: function () { this.isEventsSet && ((this.isEventsSet = !1), this.handleEventsUnset(), this.trigger('eventsUnset')); }, whenEventsSet: function () { var t = this; return this.isEventsSet ? bt.resolve(this.getCurrentEvents()) : new bt(function (e) { t.one('eventsSet', e); }); }, handleEvents: function (t, e) { this.requestEventsRender(t); }, handleEventsUnset: function () { this.requestEventsUnrender(); }, requestEventsRender: function (t) { var e = this; return this.eventRenderQueue.add(function () { return e.executeEventsRender(t); }); }, requestEventsUnrender: function () { var t = this; return this.isEventsRendered ? this.eventRenderQueue.addQuickly(function () { return t.executeEventsUnrender(); }) : bt.resolve(); }, requestCurrentEventsRender: function () { return this.isEventsSet ? void this.requestEventsRender(this.getCurrentEvents()) : bt.reject(); }, executeEventsRender: function (t) { var e = this; return ( this.captureScroll(), this.freezeHeight(), this.executeEventsUnrender().then(function () { e.renderEvents(t), e.thawHeight(), e.releaseScroll(), (e.isEventsRendered = !0), e.onEventsRender(), e.trigger('eventsRender'); }) ); }, executeEventsUnrender: function () { return ( this.isEventsRendered && (this.onBeforeEventsUnrender(), this.captureScroll(), this.freezeHeight(), this.destroyEvents && this.destroyEvents(), this.unrenderEvents(), this.thawHeight(), this.releaseScroll(), (this.isEventsRendered = !1), this.trigger('eventsUnrender')), bt.resolve() ); }, onEventsRender: function () { this.renderedEventSegEach(function (t) { this.publiclyTrigger('eventAfterRender', t.event, t.event, t.el); }), this.publiclyTrigger('eventAfterAllRender'); }, onBeforeEventsUnrender: function () { this.renderedEventSegEach(function (t) { this.publiclyTrigger('eventDestroy', t.event, t.event, t.el); }); }, renderEvents: function (t) {}, unrenderEvents: function () {}, requestEvents: function () { return this.calendar.requestEvents(this.start, this.end); }, getCurrentEvents: function () { return this.calendar.getPrunedEventCache(); }, resolveEventEl: function (e, n) { var i = this.publiclyTrigger('eventRender', e, e, n); return i === !1 ? (n = null) : i && i !== !0 && (n = t(i)), n; }, showEvent: function (t) { this.renderedEventSegEach(function (t) { t.el.css('visibility', ''); }, t); }, hideEvent: function (t) { this.renderedEventSegEach(function (t) { t.el.css('visibility', 'hidden'); }, t); }, renderedEventSegEach: function (t, e) { var n, i = this.getEventSegs(); for (n = 0; n < i.length; n++) (e && i[n].event._id !== e._id) || (i[n].el && t.call(this, i[n])); }, getEventSegs: function () { return []; }, isEventDraggable: function (t) { return this.isEventStartEditable(t); }, isEventStartEditable: function (t) { return J(t.startEditable, (t.source || {}).startEditable, this.opt('eventStartEditable'), this.isEventGenerallyEditable(t)); }, isEventGenerallyEditable: function (t) { return J(t.editable, (t.source || {}).editable, this.opt('editable')); }, reportEventDrop: function (t, e, n, i, r) { var s = this.calendar, o = s.mutateEvent(t, e, n), l = function () { o.undo(), s.reportEventChange(); }; this.triggerEventDrop(t, o.dateDelta, l, i, r), s.reportEventChange(); }, triggerEventDrop: function (t, e, n, i, r) { this.publiclyTrigger('eventDrop', i[0], t, e, n, r, {}); }, reportExternalDrop: function (e, n, i, r, s) { var o, l, a = e.eventProps; a && ((o = t.extend({}, a, n)), (l = this.calendar.renderEvent(o, e.stick)[0])), this.triggerExternalDrop(l, n, i, r, s); }, triggerExternalDrop: function (t, e, n, i, r) { this.publiclyTrigger('drop', n[0], e.start, i, r), t && this.publiclyTrigger('eventReceive', null, t); }, renderDrag: function (t, e) {}, unrenderDrag: function () {}, isEventResizableFromStart: function (t) { return this.opt('eventResizableFromStart') && this.isEventResizable(t); }, isEventResizableFromEnd: function (t) { return this.isEventResizable(t); }, isEventResizable: function (t) { var e = t.source || {}; return J(t.durationEditable, e.durationEditable, this.opt('eventDurationEditable'), t.editable, e.editable, this.opt('editable')); }, reportEventResize: function (t, e, n, i, r) { var s = this.calendar, o = s.mutateEvent(t, e, n), l = function () { o.undo(), s.reportEventChange(); }; this.triggerEventResize(t, o.durationDelta, l, i, r), s.reportEventChange(); }, triggerEventResize: function (t, e, n, i, r) { this.publiclyTrigger('eventResize', i[0], t, e, n, r, {}); }, select: function (t, e) { this.unselect(e), this.renderSelection(t), this.reportSelection(t, e); }, renderSelection: function (t) {}, reportSelection: function (t, e) { (this.isSelected = !0), this.triggerSelect(t, e); }, triggerSelect: function (t, e) { this.publiclyTrigger('select', null, this.calendar.applyTimezone(t.start), this.calendar.applyTimezone(t.end), e); }, unselect: function (t) { this.isSelected && ((this.isSelected = !1), this.destroySelection && this.destroySelection(), this.unrenderSelection(), this.publiclyTrigger('unselect', null, t)); }, unrenderSelection: function () {}, selectEvent: function (t) { (this.selectedEvent && this.selectedEvent === t) || (this.unselectEvent(), this.renderedEventSegEach(function (t) { t.el.addClass('fc-selected'); }, t), (this.selectedEvent = t)); }, unselectEvent: function () { this.selectedEvent && (this.renderedEventSegEach(function (t) { t.el.removeClass('fc-selected'); }, this.selectedEvent), (this.selectedEvent = null)); }, isEventSelected: function (t) { return this.selectedEvent && this.selectedEvent._id === t._id; }, handleDocumentMousedown: function (t) { S(t) && this.processUnselect(t); }, processUnselect: function (t) { this.processRangeUnselect(t), this.processEventUnselect(t); }, processRangeUnselect: function (e) { var n; this.isSelected && this.opt('unselectAuto') && ((n = this.opt('unselectCancel')), (n && t(e.target).closest(n).length) || this.unselect(e)); }, processEventUnselect: function (e) { this.selectedEvent && (t(e.target).closest('.fc-selected').length || this.unselectEvent()); }, triggerDayClick: function (t, e, n) { this.publiclyTrigger('dayClick', e, this.calendar.applyTimezone(t.start), n); }, initHiddenDays: function () { var e, n = this.opt('hiddenDays') || [], i = [], r = 0; for (this.opt('weekends') === !1 && n.push(0, 6), e = 0; e < 7; e++) (i[e] = t.inArray(e, n) !== -1) || r++; if (!r) throw 'invalid hiddenDays'; this.isHiddenDayHash = i; }, isHiddenDay: function (t) { return e.isMoment(t) && (t = t.day()), this.isHiddenDayHash[t]; }, skipHiddenDays: function (t, e, n) { var i = t.clone(); for (e = e || 1; this.isHiddenDayHash[(i.day() + (n ? e : 0) + 7) % 7]; ) i.add(e, 'days'); return i; }, computeDayRange: function (t) { var e, n = t.start.clone().stripTime(), i = t.end, r = null; return ( i && ((r = i.clone().stripTime()), (e = +i.time()), e && e >= this.nextDayThreshold && r.add(1, 'days')), (!i || r <= n) && (r = n.clone().add(1, 'days')), { start: n, end: r } ); }, isMultiDayEvent: function (t) { var e = this.computeDayRange(t); return e.end.diff(e.start, 'days') > 1; }, })), be = (qt.Scroller = St.extend({ el: null, scrollEl: null, overflowX: null, overflowY: null, constructor: function (t) { (t = t || {}), (this.overflowX = t.overflowX || t.overflow || 'auto'), (this.overflowY = t.overflowY || t.overflow || 'auto'); }, render: function () { (this.el = this.renderEl()), this.applyOverflow(); }, renderEl: function () { return (this.scrollEl = t('
')); }, clear: function () { this.setHeight('auto'), this.applyOverflow(); }, destroy: function () { this.el.remove(); }, applyOverflow: function () { this.scrollEl.css({ 'overflow-x': this.overflowX, 'overflow-y': this.overflowY }); }, lockOverflow: function (t) { var e = this.overflowX, n = this.overflowY; (t = t || this.getScrollbarWidths()), 'auto' === e && (e = t.top || t.bottom || this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth ? 'scroll' : 'hidden'), 'auto' === n && (n = t.left || t.right || this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight ? 'scroll' : 'hidden'), this.scrollEl.css({ 'overflow-x': e, 'overflow-y': n }); }, setHeight: function (t) { this.scrollEl.height(t); }, getScrollTop: function () { return this.scrollEl.scrollTop(); }, setScrollTop: function (t) { this.scrollEl.scrollTop(t); }, getClientWidth: function () { return this.scrollEl[0].clientWidth; }, getClientHeight: function () { return this.scrollEl[0].clientHeight; }, getScrollbarWidths: function () { return p(this.scrollEl); }, })); Vt.prototype.proxyCall = function (t) { var e = Array.prototype.slice.call(arguments, 1), n = []; return ( this.items.forEach(function (i) { n.push(i[t].apply(i, e)); }), n ); }; var De = (qt.Calendar = St.extend({ dirDefaults: null, localeDefaults: null, overrides: null, dynamicOverrides: null, options: null, viewSpecCache: null, view: null, header: null, footer: null, loadingLevel: 0, constructor: _t, initialize: function () {}, populateOptionsHash: function () { var t, e, i, r; (t = J(this.dynamicOverrides.locale, this.overrides.locale)), (e = Te[t]), e || ((t = De.defaults.locale), (e = Te[t] || {})), (i = J(this.dynamicOverrides.isRTL, this.overrides.isRTL, e.isRTL, De.defaults.isRTL)), (r = i ? De.rtlDefaults : {}), (this.dirDefaults = r), (this.localeDefaults = e), (this.options = n([De.defaults, r, e, this.overrides, this.dynamicOverrides])), Yt(this.options); }, getViewSpec: function (t) { var e = this.viewSpecCache; return e[t] || (e[t] = this.buildViewSpec(t)); }, getUnitViewSpec: function (e) { var n, i, r; if (t.inArray(e, Kt) != -1) for ( n = this.header.getViewsWithButtons(), t.each(qt.views, function (t) { n.push(t); }), i = 0; i < n.length; i++ ) if (((r = this.getViewSpec(n[i])), r && r.singleUnit == e)) return r; }, buildViewSpec: function (t) { for (var i, r, s, o, l = this.overrides.views || {}, a = [], u = [], c = [], d = t; d; ) (i = Zt[d]), (r = l[d]), (d = null), 'function' == typeof i && (i = { class: i }), i && (a.unshift(i), u.unshift(i.defaults || {}), (s = s || i.duration), (d = d || i.type)), r && (c.unshift(r), (s = s || r.duration), (d = d || r.type)); return ( (i = q(a)), (i.type = t), !!i.class && (s && ((s = e.duration(s)), s.valueOf() && ((i.duration = s), (o = A(s)), 1 === s.as(o) && ((i.singleUnit = o), c.unshift(l[o] || {})))), (i.defaults = n(u)), (i.overrides = n(c)), this.buildViewSpecOptions(i), this.buildViewSpecButtonText(i, t), i) ); }, buildViewSpecOptions: function (t) { (t.options = n([De.defaults, t.defaults, this.dirDefaults, this.localeDefaults, this.overrides, t.overrides, this.dynamicOverrides])), Yt(t.options); }, buildViewSpecButtonText: function (t, e) { function n(n) { var i = n.buttonText || {}; return i[e] || (t.buttonTextKey ? i[t.buttonTextKey] : null) || (t.singleUnit ? i[t.singleUnit] : null); } (t.buttonTextOverride = n(this.dynamicOverrides) || n(this.overrides) || t.overrides.buttonText), (t.buttonTextDefault = n(this.localeDefaults) || n(this.dirDefaults) || t.defaults.buttonText || n(De.defaults) || (t.duration ? this.humanizeDuration(t.duration) : null) || e); }, instantiateView: function (t) { var e = this.getViewSpec(t); return new e.class(this, t, e.options, e.duration); }, isValidViewType: function (t) { return Boolean(this.getViewSpec(t)); }, pushLoading: function () { this.loadingLevel++ || this.publiclyTrigger('loading', null, !0, this.view); }, popLoading: function () { --this.loadingLevel || this.publiclyTrigger('loading', null, !1, this.view); }, buildSelectSpan: function (t, e) { var n, i = this.moment(t).stripZone(); return ( (n = e ? this.moment(e).stripZone() : i.hasTime() ? i.clone().add(this.defaultTimedEventDuration) : i.clone().add(this.defaultAllDayEventDuration)), { start: i, end: n } ); }, })); De.mixin(ue), De.mixin({ optionHandlers: null, bindOption: function (t, e) { this.bindOptions([t], e); }, bindOptions: function (t, e) { var n, i = { func: e, names: t }; for (n = 0; n < t.length; n++) this.registerOptionHandlerObj(t[n], i); this.triggerOptionHandlerObj(i); }, registerOptionHandlerObj: function (t, e) { (this.optionHandlers[t] || (this.optionHandlers[t] = [])).push(e); }, triggerOptionHandlers: function (t) { var e, n = this.optionHandlers[t] || []; for (e = 0; e < n.length; e++) this.triggerOptionHandlerObj(n[e]); }, triggerOptionHandlerObj: function (t) { var e, n = t.names, i = []; for (e = 0; e < n.length; e++) i.push(this.options[n[e]]); t.func.apply(this, i); }, }), (De.defaults = { titleRangeSeparator: ' – ', monthYearFormat: 'MMMM YYYY', defaultTimedEventDuration: '02:00:00', defaultAllDayEventDuration: { days: 1 }, forceEventDuration: !1, nextDayThreshold: '09:00:00', defaultView: 'month', aspectRatio: 1.35, header: { left: 'title', center: '', right: 'today prev,next' }, weekends: !0, weekNumbers: !1, weekNumberTitle: 'W', weekNumberCalculation: 'local', scrollTime: '06:00:00', lazyFetching: !0, startParam: 'start', endParam: 'end', timezoneParam: 'timezone', timezone: !1, isRTL: !1, buttonText: { prev: 'prev', next: 'next', prevYear: 'prev year', nextYear: 'next year', year: 'year', today: 'today', month: 'month', week: 'week', day: 'day', }, buttonIcons: { prev: 'left-single-arrow', next: 'right-single-arrow', prevYear: 'left-double-arrow', nextYear: 'right-double-arrow' }, allDayText: 'all-day', theme: !1, themeButtonIcons: { prev: 'circle-triangle-w', next: 'circle-triangle-e', prevYear: 'seek-prev', nextYear: 'seek-next' }, dragOpacity: 0.75, dragRevertDuration: 500, dragScroll: !0, unselectAuto: !0, dropAccept: '*', eventOrder: 'title', eventLimit: !1, eventLimitText: 'more', eventLimitClick: 'popover', dayPopoverFormat: 'LL', handleWindowResize: !0, windowResizeDelay: 100, longPressDelay: 1e3, }), (De.englishDefaults = { dayPopoverFormat: 'dddd, MMMM D' }), (De.rtlDefaults = { header: { left: 'next,prev today', center: '', right: 'title' }, buttonIcons: { prev: 'right-single-arrow', next: 'left-single-arrow', prevYear: 'right-double-arrow', nextYear: 'left-double-arrow' }, themeButtonIcons: { prev: 'circle-triangle-e', next: 'circle-triangle-w', nextYear: 'seek-prev', prevYear: 'seek-next' }, }); var Te = (qt.locales = {}); (qt.datepickerLocale = function (e, n, i) { var r = Te[e] || (Te[e] = {}); (r.isRTL = i.isRTL), (r.weekNumberTitle = i.weekHeader), t.each(Ce, function (t, e) { r[t] = e(i); }), t.datepicker && ((t.datepicker.regional[n] = t.datepicker.regional[e] = i), (t.datepicker.regional.en = t.datepicker.regional['']), t.datepicker.setDefaults(i)); }), (qt.locale = function (e, i) { var r, s; (r = Te[e] || (Te[e] = {})), i && (r = Te[e] = n([r, i])), (s = Wt(e)), t.each(He, function (t, e) { null == r[t] && (r[t] = e(s, r)); }), (De.defaults.locale = e); }); var Ce = { buttonText: function (t) { return { prev: et(t.prevText), next: et(t.nextText), today: et(t.currentText) }; }, monthYearFormat: function (t) { return t.showMonthAfterYear ? 'YYYY[' + t.yearSuffix + '] MMMM' : 'MMMM YYYY[' + t.yearSuffix + ']'; }, }, He = { dayOfMonthFormat: function (t, e) { var n = t.longDateFormat('l'); return (n = n.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g, '')), e.isRTL ? (n += ' ddd') : (n = 'ddd ' + n), n; }, mediumTimeFormat: function (t) { return t.longDateFormat('LT').replace(/\s*a$/i, 'a'); }, smallTimeFormat: function (t) { return t .longDateFormat('LT') .replace(':mm', '(:mm)') .replace(/(\Wmm)$/, '($1)') .replace(/\s*a$/i, 'a'); }, extraSmallTimeFormat: function (t) { return t .longDateFormat('LT') .replace(':mm', '(:mm)') .replace(/(\Wmm)$/, '($1)') .replace(/\s*a$/i, 't'); }, hourFormat: function (t) { return t .longDateFormat('LT') .replace(':mm', '') .replace(/(\Wmm)$/, '') .replace(/\s*a$/i, 'a'); }, noMeridiemTimeFormat: function (t) { return t.longDateFormat('LT').replace(/\s*a$/i, ''); }, }, Re = { smallDayDateFormat: function (t) { return t.isRTL ? 'D dd' : 'dd D'; }, weekFormat: function (t) { return t.isRTL ? 'w[ ' + t.weekNumberTitle + ']' : '[' + t.weekNumberTitle + ' ]w'; }, smallWeekFormat: function (t) { return t.isRTL ? 'w[' + t.weekNumberTitle + ']' : '[' + t.weekNumberTitle + ']w'; }, }; qt.locale('en', De.englishDefaults), (qt.sourceNormalizers = []), (qt.sourceFetchers = []); var xe = { dataType: 'json', cache: !1 }, Ie = 1; (De.prototype.normalizeEvent = function (t) {}), (De.prototype.spanContainsSpan = function (t, e) { var n = t.start.clone().stripZone(), i = this.getEventEnd(t).stripZone(); return e.start >= n && e.end <= i; }), (De.prototype.getPeerEvents = function (t, e) { var n, i, r = this.getEventCache(), s = []; for (n = 0; n < r.length; n++) (i = r[n]), (e && e._id === i._id) || s.push(i); return s; }), (De.prototype.isEventSpanAllowed = function (t, e) { var n = e.source || {}, i = J(e.constraint, n.constraint, this.options.eventConstraint), r = J(e.overlap, n.overlap, this.options.eventOverlap); return this.isSpanAllowed(t, i, r, e) && (!this.options.eventAllow || this.options.eventAllow(t, e) !== !1); }), (De.prototype.isExternalSpanAllowed = function (e, n, i) { var r, s; return ( i && ((r = t.extend({}, i, n)), (s = this.expandEvent(this.buildEventFromInput(r))[0])), s ? this.isEventSpanAllowed(e, s) : this.isSelectionSpanAllowed(e) ); }), (De.prototype.isSelectionSpanAllowed = function (t) { return ( this.isSpanAllowed(t, this.options.selectConstraint, this.options.selectOverlap) && (!this.options.selectAllow || this.options.selectAllow(t) !== !1) ); }), (De.prototype.isSpanAllowed = function (t, e, n, i) { var r, s, o, l, a, u; if (null != e && (r = this.constraintToEvents(e))) { for (s = !1, l = 0; l < r.length; l++) if (this.spanContainsSpan(r[l], t)) { s = !0; break; } if (!s) return !1; } for (o = this.getPeerEvents(t, i), l = 0; l < o.length; l++) if (((a = o[l]), this.eventIntersectsRange(a, t))) { if (n === !1) return !1; if ('function' == typeof n && !n(a, i)) return !1; if (i) { if (((u = J(a.overlap, (a.source || {}).overlap)), u === !1)) return !1; if ('function' == typeof u && !u(i, a)) return !1; } } return !0; }), (De.prototype.constraintToEvents = function (t) { return 'businessHours' === t ? this.getCurrentBusinessHourEvents() : 'object' == typeof t ? null != t.start ? this.expandEvent(this.buildEventFromInput(t)) : null : this.clientEvents(t); }), (De.prototype.eventIntersectsRange = function (t, e) { var n = t.start.clone().stripZone(), i = this.getEventEnd(t).stripZone(); return e.start < i && e.end > n; }); var ke = { id: '_fcBusinessHours', start: '09:00', end: '17:00', dow: [1, 2, 3, 4, 5], rendering: 'inverse-background' }; (De.prototype.getCurrentBusinessHourEvents = function (t) { return this.computeBusinessHourEvents(t, this.options.businessHours); }), (De.prototype.computeBusinessHourEvents = function (e, n) { return n === !0 ? this.expandBusinessHourEvents(e, [{}]) : t.isPlainObject(n) ? this.expandBusinessHourEvents(e, [n]) : t.isArray(n) ? this.expandBusinessHourEvents(e, n, !0) : []; }), (De.prototype.expandBusinessHourEvents = function (e, n, i) { var r, s, o = this.getView(), l = []; for (r = 0; r < n.length; r++) (s = n[r]), (i && !s.dow) || ((s = t.extend({}, ke, s)), e && ((s.start = null), (s.end = null)), l.push.apply(l, this.expandEvent(this.buildEventFromInput(s), o.start, o.end))); return l; }); var Le = (qt.BasicView = Ee.extend({ scroller: null, dayGridClass: Se, dayGrid: null, dayNumbersVisible: !1, colWeekNumbersVisible: !1, cellWeekNumbersVisible: !1, weekNumberWidth: null, headContainerEl: null, headRowEl: null, initialize: function () { (this.dayGrid = this.instantiateDayGrid()), (this.scroller = new be({ overflowX: 'hidden', overflowY: 'auto' })); }, instantiateDayGrid: function () { var t = this.dayGridClass.extend(Me); return new t(this); }, setRange: function (t) { Ee.prototype.setRange.call(this, t), (this.dayGrid.breakOnWeeks = /year|month|week/.test(this.intervalUnit)), this.dayGrid.setRange(t); }, computeRange: function (t) { var e = Ee.prototype.computeRange.call(this, t); return ( /year|month/.test(e.intervalUnit) && (e.start.startOf('week'), (e.start = this.skipHiddenDays(e.start)), e.end.weekday() && (e.end.add(1, 'week').startOf('week'), (e.end = this.skipHiddenDays(e.end, -1, !0)))), e ); }, renderDates: function () { (this.dayNumbersVisible = this.dayGrid.rowCnt > 1), this.opt('weekNumbers') && (this.opt('weekNumbersWithinDays') ? ((this.cellWeekNumbersVisible = !0), (this.colWeekNumbersVisible = !1)) : ((this.cellWeekNumbersVisible = !1), (this.colWeekNumbersVisible = !0))), (this.dayGrid.numbersVisible = this.dayNumbersVisible || this.cellWeekNumbersVisible || this.colWeekNumbersVisible), this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml()), this.renderHead(), this.scroller.render(); var e = this.scroller.el.addClass('fc-day-grid-container'), n = t('
').appendTo(e); this.el.find('.fc-body > tr > td').append(e), this.dayGrid.setElement(n), this.dayGrid.renderDates(this.hasRigidRows()); }, renderHead: function () { (this.headContainerEl = this.el.find('.fc-head-container').html(this.dayGrid.renderHeadHtml())), (this.headRowEl = this.headContainerEl.find('.fc-row')); }, unrenderDates: function () { this.dayGrid.unrenderDates(), this.dayGrid.removeElement(), this.scroller.destroy(); }, renderBusinessHours: function () { this.dayGrid.renderBusinessHours(); }, unrenderBusinessHours: function () { this.dayGrid.unrenderBusinessHours(); }, renderSkeletonHtml: function () { return ( '
' ); }, weekNumberStyleAttr: function () { return null !== this.weekNumberWidth ? 'style="width:' + this.weekNumberWidth + 'px"' : ''; }, hasRigidRows: function () { var t = this.opt('eventLimit'); return t && 'number' != typeof t; }, updateWidth: function () { this.colWeekNumbersVisible && (this.weekNumberWidth = u(this.el.find('.fc-week-number'))); }, setHeight: function (t, e) { var n, s, o = this.opt('eventLimit'); this.scroller.clear(), r(this.headRowEl), this.dayGrid.removeSegPopover(), o && 'number' == typeof o && this.dayGrid.limitRows(o), (n = this.computeScrollerHeight(t)), this.setGridHeight(n, e), o && 'number' != typeof o && this.dayGrid.limitRows(o), e || (this.scroller.setHeight(n), (s = this.scroller.getScrollbarWidths()), (s.left || s.right) && (i(this.headRowEl, s), (n = this.computeScrollerHeight(t)), this.scroller.setHeight(n)), this.scroller.lockOverflow(s)); }, computeScrollerHeight: function (t) { return t - c(this.el, this.scroller.el); }, setGridHeight: function (t, e) { e ? a(this.dayGrid.rowEls) : l(this.dayGrid.rowEls, t, !0); }, computeInitialScroll: function () { return { top: 0 }; }, queryScroll: function () { return { top: this.scroller.getScrollTop() }; }, setScroll: function (t) { this.scroller.setScrollTop(t.top); }, prepareHits: function () { this.dayGrid.prepareHits(); }, releaseHits: function () { this.dayGrid.releaseHits(); }, queryHit: function (t, e) { return this.dayGrid.queryHit(t, e); }, getHitSpan: function (t) { return this.dayGrid.getHitSpan(t); }, getHitEl: function (t) { return this.dayGrid.getHitEl(t); }, renderEvents: function (t) { this.dayGrid.renderEvents(t), this.updateHeight(); }, getEventSegs: function () { return this.dayGrid.getEventSegs(); }, unrenderEvents: function () { this.dayGrid.unrenderEvents(); }, renderDrag: function (t, e) { return this.dayGrid.renderDrag(t, e); }, unrenderDrag: function () { this.dayGrid.unrenderDrag(); }, renderSelection: function (t) { this.dayGrid.renderSelection(t); }, unrenderSelection: function () { this.dayGrid.unrenderSelection(); }, })), Me = { renderHeadIntroHtml: function () { var t = this.view; return t.colWeekNumbersVisible ? '' + tt(t.opt('weekNumberTitle')) + '' : ''; }, renderNumberIntroHtml: function (t) { var e = this.view, n = this.getCellDate(t, 0); return e.colWeekNumbersVisible ? '' + e.buildGotoAnchorHtml({ date: n, type: 'week', forceOff: 1 === this.colCnt }, n.format('w')) + '' : ''; }, renderBgIntroHtml: function () { var t = this.view; return t.colWeekNumbersVisible ? '' : ''; }, renderIntroHtml: function () { var t = this.view; return t.colWeekNumbersVisible ? '' : ''; }, }, Be = (qt.MonthView = Le.extend({ computeRange: function (t) { var e, n = Le.prototype.computeRange.call(this, t); return this.isFixedWeeks() && ((e = Math.ceil(n.end.diff(n.start, 'weeks', !0))), n.end.add(6 - e, 'weeks')), n; }, setGridHeight: function (t, e) { e && (t *= this.rowCnt / 6), l(this.dayGrid.rowEls, t, !e); }, isFixedWeeks: function () { return this.opt('fixedWeekCount'); }, })); (Zt.basic = { class: Le }), (Zt.basicDay = { type: 'basic', duration: { days: 1 } }), (Zt.basicWeek = { type: 'basic', duration: { weeks: 1 } }), (Zt.month = { class: Be, duration: { months: 1 }, defaults: { fixedWeekCount: !0 } }); var ze = (qt.AgendaView = Ee.extend({ scroller: null, timeGridClass: we, timeGrid: null, dayGridClass: Se, dayGrid: null, axisWidth: null, headContainerEl: null, noScrollRowEls: null, bottomRuleEl: null, initialize: function () { (this.timeGrid = this.instantiateTimeGrid()), this.opt('allDaySlot') && (this.dayGrid = this.instantiateDayGrid()), (this.scroller = new be({ overflowX: 'hidden', overflowY: 'auto' })); }, instantiateTimeGrid: function () { var t = this.timeGridClass.extend(Fe); return new t(this); }, instantiateDayGrid: function () { var t = this.dayGridClass.extend(Ne); return new t(this); }, setRange: function (t) { Ee.prototype.setRange.call(this, t), this.timeGrid.setRange(t), this.dayGrid && this.dayGrid.setRange(t); }, renderDates: function () { this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml()), this.renderHead(), this.scroller.render(); var e = this.scroller.el.addClass('fc-time-grid-container'), n = t('
').appendTo(e); this.el.find('.fc-body > tr > td').append(e), this.timeGrid.setElement(n), this.timeGrid.renderDates(), (this.bottomRuleEl = t('
').appendTo(this.timeGrid.el)), this.dayGrid && (this.dayGrid.setElement(this.el.find('.fc-day-grid')), this.dayGrid.renderDates(), (this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight())), (this.noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)')); }, renderHead: function () { this.headContainerEl = this.el.find('.fc-head-container').html(this.timeGrid.renderHeadHtml()); }, unrenderDates: function () { this.timeGrid.unrenderDates(), this.timeGrid.removeElement(), this.dayGrid && (this.dayGrid.unrenderDates(), this.dayGrid.removeElement()), this.scroller.destroy(); }, renderSkeletonHtml: function () { return ( '
' + (this.dayGrid ? '

' : '') + '
' ); }, axisStyleAttr: function () { return null !== this.axisWidth ? 'style="width:' + this.axisWidth + 'px"' : ''; }, renderBusinessHours: function () { this.timeGrid.renderBusinessHours(), this.dayGrid && this.dayGrid.renderBusinessHours(); }, unrenderBusinessHours: function () { this.timeGrid.unrenderBusinessHours(), this.dayGrid && this.dayGrid.unrenderBusinessHours(); }, getNowIndicatorUnit: function () { return this.timeGrid.getNowIndicatorUnit(); }, renderNowIndicator: function (t) { this.timeGrid.renderNowIndicator(t); }, unrenderNowIndicator: function () { this.timeGrid.unrenderNowIndicator(); }, updateSize: function (t) { this.timeGrid.updateSize(t), Ee.prototype.updateSize.call(this, t); }, updateWidth: function () { this.axisWidth = u(this.el.find('.fc-axis')); }, setHeight: function (t, e) { var n, s, o; this.bottomRuleEl.hide(), this.scroller.clear(), r(this.noScrollRowEls), this.dayGrid && (this.dayGrid.removeSegPopover(), (n = this.opt('eventLimit')), n && 'number' != typeof n && (n = Ge), n && this.dayGrid.limitRows(n)), e || ((s = this.computeScrollerHeight(t)), this.scroller.setHeight(s), (o = this.scroller.getScrollbarWidths()), (o.left || o.right) && (i(this.noScrollRowEls, o), (s = this.computeScrollerHeight(t)), this.scroller.setHeight(s)), this.scroller.lockOverflow(o), this.timeGrid.getTotalSlatHeight() < s && this.bottomRuleEl.show()); }, computeScrollerHeight: function (t) { return t - c(this.el, this.scroller.el); }, computeInitialScroll: function () { var t = e.duration(this.opt('scrollTime')), n = this.timeGrid.computeTimeTop(t); return (n = Math.ceil(n)), n && n++, { top: n }; }, queryScroll: function () { return { top: this.scroller.getScrollTop() }; }, setScroll: function (t) { this.scroller.setScrollTop(t.top); }, prepareHits: function () { this.timeGrid.prepareHits(), this.dayGrid && this.dayGrid.prepareHits(); }, releaseHits: function () { this.timeGrid.releaseHits(), this.dayGrid && this.dayGrid.releaseHits(); }, queryHit: function (t, e) { var n = this.timeGrid.queryHit(t, e); return !n && this.dayGrid && (n = this.dayGrid.queryHit(t, e)), n; }, getHitSpan: function (t) { return t.component.getHitSpan(t); }, getHitEl: function (t) { return t.component.getHitEl(t); }, renderEvents: function (t) { var e, n, i = [], r = [], s = []; for (n = 0; n < t.length; n++) t[n].allDay ? i.push(t[n]) : r.push(t[n]); (e = this.timeGrid.renderEvents(r)), this.dayGrid && (s = this.dayGrid.renderEvents(i)), this.updateHeight(); }, getEventSegs: function () { return this.timeGrid.getEventSegs().concat(this.dayGrid ? this.dayGrid.getEventSegs() : []); }, unrenderEvents: function () { this.timeGrid.unrenderEvents(), this.dayGrid && this.dayGrid.unrenderEvents(); }, renderDrag: function (t, e) { return t.start.hasTime() ? this.timeGrid.renderDrag(t, e) : this.dayGrid ? this.dayGrid.renderDrag(t, e) : void 0; }, unrenderDrag: function () { this.timeGrid.unrenderDrag(), this.dayGrid && this.dayGrid.unrenderDrag(); }, renderSelection: function (t) { t.start.hasTime() || t.end.hasTime() ? this.timeGrid.renderSelection(t) : this.dayGrid && this.dayGrid.renderSelection(t); }, unrenderSelection: function () { this.timeGrid.unrenderSelection(), this.dayGrid && this.dayGrid.unrenderSelection(); }, })), Fe = { renderHeadIntroHtml: function () { var t, e = this.view; return e.opt('weekNumbers') ? ((t = this.start.format(e.opt('smallWeekFormat'))), '' + e.buildGotoAnchorHtml({ date: this.start, type: 'week', forceOff: this.colCnt > 1 }, tt(t)) + '') : ''; }, renderBgIntroHtml: function () { var t = this.view; return ''; }, renderIntroHtml: function () { var t = this.view; return ''; }, }, Ne = { renderBgIntroHtml: function () { var t = this.view; return '' + t.getAllDayHtml() + ''; }, renderIntroHtml: function () { var t = this.view; return ''; }, }, Ge = 5, Oe = [{ hours: 1 }, { minutes: 30 }, { minutes: 15 }, { seconds: 30 }, { seconds: 15 }]; (Zt.agenda = { class: ze, defaults: { allDaySlot: !0, slotDuration: '00:30:00', minTime: '00:00:00', maxTime: '24:00:00', slotEventOverlap: !0 }, }), (Zt.agendaDay = { type: 'agenda', duration: { days: 1 } }), (Zt.agendaWeek = { type: 'agenda', duration: { weeks: 1 } }); var Ae = Ee.extend({ grid: null, scroller: null, initialize: function () { (this.grid = new Ve(this)), (this.scroller = new be({ overflowX: 'hidden', overflowY: 'auto' })); }, setRange: function (t) { Ee.prototype.setRange.call(this, t), this.grid.setRange(t); }, renderSkeleton: function () { this.el.addClass('fc-list-view ' + this.widgetContentClass), this.scroller.render(), this.scroller.el.appendTo(this.el), this.grid.setElement(this.scroller.scrollEl); }, unrenderSkeleton: function () { this.scroller.destroy(); }, setHeight: function (t, e) { this.scroller.setHeight(this.computeScrollerHeight(t)); }, computeScrollerHeight: function (t) { return t - c(this.el, this.scroller.el); }, renderEvents: function (t) { this.grid.renderEvents(t); }, unrenderEvents: function () { this.grid.unrenderEvents(); }, isEventResizable: function (t) { return !1; }, isEventDraggable: function (t) { return !1; }, }), Ve = me.extend({ segSelector: '.fc-list-item', hasDayInteractions: !1, spanToSegs: function (t) { for (var e, n = this.view, i = n.start.clone().time(0), r = 0, s = []; i < n.end; ) if ( ((e = F(t, { start: i, end: i.clone().add(1, 'day') })), e && ((e.dayIndex = r), s.push(e)), i.add(1, 'day'), r++, e && !e.isEnd && t.end.hasTime() && t.end < i.clone().add(this.view.nextDayThreshold)) ) { (e.end = t.end.clone()), (e.isEnd = !0); break; } return s; }, computeEventTimeFormat: function () { return this.view.opt('mediumTimeFormat'); }, handleSegClick: function (e, n) { var i; me.prototype.handleSegClick.apply(this, arguments), t(n.target).closest('a[href]').length || ((i = e.event.url), i && !n.isDefaultPrevented() && (window.location.href = i)); }, renderFgSegs: function (t) { return (t = this.renderFgSegEls(t)), t.length ? this.renderSegList(t) : this.renderEmptyMessage(), t; }, renderEmptyMessage: function () { this.el.html( '
' + tt(this.view.opt('noEventsMessage')) + '
' ); }, renderSegList: function (e) { var n, i, r, s = this.groupSegsByDay(e), o = t('
'), l = o.find('tbody'); for (n = 0; n < s.length; n++) if ((i = s[n])) for (l.append(this.dayHeaderHtml(this.view.start.clone().add(n, 'days'))), this.sortEventSegs(i), r = 0; r < i.length; r++) l.append(i[r].el); this.el.empty().append(o); }, groupSegsByDay: function (t) { var e, n, i = []; for (e = 0; e < t.length; e++) (n = t[e]), (i[n.dayIndex] || (i[n.dayIndex] = [])).push(n); return i; }, dayHeaderHtml: function (t) { var e = this.view, n = e.opt('listDayFormat'), i = e.opt('listDayAltFormat'); return ( '' + (n ? e.buildGotoAnchorHtml(t, { class: 'fc-list-heading-main' }, tt(t.format(n))) : '') + (i ? e.buildGotoAnchorHtml(t, { class: 'fc-list-heading-alt' }, tt(t.format(i))) : '') + '' ); }, fgSegHtml: function (t) { var e, n = this.view, i = ['fc-list-item'].concat(this.getSegCustomClasses(t)), r = this.getSegBackgroundColor(t), s = t.event, o = s.url; return ( (e = s.allDay ? n.getAllDayHtml() : n.isMultiDayEvent(s) ? t.isStart || t.isEnd ? tt(this.getEventTimeText(t)) : n.getAllDayHtml() : tt(this.getEventTimeText(s))), o && i.push('fc-has-url'), '' + (this.displayEventTime ? '' + (e || '') + '' : '') + '' + tt(t.event.title || '') + '' ); }, }); return ( (Zt.list = { class: Ae, buttonTextKey: 'list', defaults: { buttonText: 'list', listDayFormat: 'LL', noEventsMessage: 'No events to display' }, }), (Zt.listDay = { type: 'list', duration: { days: 1 }, defaults: { listDayFormat: 'dddd' } }), (Zt.listWeek = { type: 'list', duration: { weeks: 1 }, defaults: { listDayFormat: 'dddd', listDayAltFormat: 'LL' } }), (Zt.listMonth = { type: 'list', duration: { month: 1 }, defaults: { listDayAltFormat: 'dddd' } }), (Zt.listYear = { type: 'list', duration: { year: 1 }, defaults: { listDayAltFormat: 'dddd' } }), qt ); });