/* flatpickr v4.1.4,, @license MIT */
!function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.flatpickr = t()
}(this, function() {
"use strict";
function e(e, t, n) {
return !1 !== n ? new Date(e.getTime()).setHours(0, 0, 0, 0) - new Date(t.getTime()).setHours(0, 0, 0, 0) : e.getTime() - t.getTime()
}
function t(e, t, n) {
void 0 === n && (n = !1);
var a;
return function() {
var i = this
, o = arguments;
null !== a && clearTimeout(a),
a = window.setTimeout(function() {
a = null,
n || e.apply(i, o)
}, t),
n && !a && e.apply(i, o)
}
}
function n(e, t, n) {
if (!0 === n)
return e.classList.add(t);
e.classList.remove(t)
}
function a(e, t, n) {
var a = window.document.createElement(e);
return t = t || "",
n = n || "",
a.className = t,
void 0 !== n && (a.textContent = n),
a
}
function i(e, t) {
return t(e) ? e : e.parentNode ? i(e.parentNode, t) : void 0
}
function o(e) {
var t = a("div", "numInputWrapper")
, n = a("input", "numInput " + e)
, i = a("span", "arrowUp")
, o = a("span", "arrowDown");
return n.type = "text",
n.pattern = "\\d*",
t.appendChild(n),
t.appendChild(i),
t.appendChild(o),
t
}
function r(r, s) {
for (var u = Array.prototype.slice.call(r), p = [], w = 0; w < u.length; w++) {
var M = u[w];
try {
if (null !== M.getAttribute("data-fp-omit"))
continue;
void 0 !== M._flatpickr && (M._flatpickr.destroy(),
M._flatpickr = void 0),
M._flatpickr = function(r, s) {
function u(e) {
return e.bind(X)
}
function p(e) {
if (X.config.noCalendar && 0 === X.selectedDates.length) {
var t = X.config.minDate;
X.setDate((new Date).setHours(t ? t.getHours() : X.config.defaultHour, t ? t.getMinutes() : X.config.defaultMinute, t && X.config.enableSeconds ? t.getSeconds() : X.config.defaultSeconds), !1),
w(),
Q()
}
!function(e) {
e.preventDefault();
var t = "keydown" === e.type
, n = e.target;
void 0 !== X.amPM && e.target === X.amPM && (X.amPM.textContent = X.l10n.amPM[m(X.amPM.textContent === X.l10n.amPM[0])]);
var a = Number(n.min)
, i = Number(n.max)
, o = Number(n.step)
, r = parseInt(n.value, 10)
, l = e.delta || (t ? 38 === e.which ? 1 : -1 : Math.max(-1, Math.min(1, e.wheelDelta || -e.deltaY)) || 0)
, c = r + o * l;
if (void 0 !== n.value && 2 === n.value.length) {
var d = n === X.hourElement
, s = n === X.minuteElement;
c < a ? (c = i + c + m(!d) + (m(d) && m(!X.amPM)),
s && S(void 0, -1, X.hourElement)) : c > i && (c = n === X.hourElement ? c - i - m(!X.amPM) : a,
s && S(void 0, 1, X.hourElement)),
X.amPM && d && (1 === o ? c + r === 23 : Math.abs(c - r) > o) && (X.amPM.textContent = X.l10n.amPM[m(X.amPM.textContent === X.l10n.amPM[0])]),
n.value = f(c)
}
}(e),
0 !== X.selectedDates.length && (!X.minDateHasTime || "input" !== e.type || e.target.value.length >= 2 ? (w(),
Q()) : setTimeout(function() {
w(),
Q()
}, 1e3))
}
function w() {
if (void 0 !== X.hourElement && void 0 !== X.minuteElement) {
var t = (parseInt(X.hourElement.value.slice(-2), 10) || 0) % 24
, n = (parseInt(X.minuteElement.value, 10) || 0) % 60
, a = void 0 !== X.secondElement ? (parseInt(X.secondElement.value, 10) || 0) % 60 : 0;
void 0 !== X.amPM && (t = function(e, t) {
return e % 12 + 12 * m(t === X.l10n.amPM[1])
}(t, X.amPM.textContent)),
X.config.minDate && X.minDateHasTime && X.latestSelectedDateObj && 0 === e(X.latestSelectedDateObj, X.config.minDate) && (t = Math.max(t, X.config.minDate.getHours())) === X.config.minDate.getHours() && (n = Math.max(n, X.config.minDate.getMinutes())),
X.config.maxDate && X.maxDateHasTime && X.latestSelectedDateObj && 0 === e(X.latestSelectedDateObj, X.config.maxDate) && (t = Math.min(t, X.config.maxDate.getHours())) === X.config.maxDate.getHours() && (n = Math.min(n, X.config.maxDate.getMinutes())),
b(t, n, a)
}
}
function M(e) {
var t = e || X.latestSelectedDateObj;
t && b(t.getHours(), t.getMinutes(), t.getSeconds())
}
function b(e, t, n) {
void 0 !== X.latestSelectedDateObj && X.latestSelectedDateObj.setHours(e % 24, t, n || 0, 0),
X.hourElement && X.minuteElement && !X.isMobile && (X.hourElement.value = f(X.config.time_24hr ? e : (12 + e) % 12 + 12 * m(e % 12 == 0)),
X.minuteElement.value = f(t),
void 0 !== X.amPM && (X.amPM.textContent = X.l10n.amPM[m(e >= 12)]),
void 0 !== X.secondElement && (X.secondElement.value = f(n)))
}
function y(e, t, n) {
return t instanceof Array ? t.forEach(function(t) {
return y(e, t, n)
}) : e instanceof Array ? e.forEach(function(e) {
return y(e, t, n)
}) : (e.addEventListener(t, n),
void X._handlers.push({
element: e,
event: t,
handler: n
}))
}
function x(e) {
return function(t) {
1 === t.which && e(t)
}
}
function E() {
z("onChange")
}
function N() {
X._animationLoop.forEach(function(e) {
return e()
}),
X._animationLoop = []
}
function k(e) {
var t = void 0 !== e ? q(e) : X.latestSelectedDateObj || (X.config.minDate && X.config.minDate > X.now ? X.config.minDate : X.config.maxDate && X.config.maxDate < X.now ? X.config.maxDate : X.now);
try {
void 0 !== t && (X.currentYear = t.getFullYear(),
X.currentMonth = t.getMonth())
} catch (e) {
e.message = "Invalid date supplied: " + t,
X.config.errorHandler(e)
}
X.redraw()
}
function S(e, t, n) {
var a = e && e.target
, i = n || a && a.parentNode && a.parentNode.firstChild
, o = G("increment");
o.delta = t,
i && i.dispatchEvent(o)
}
function T(t, i, o, r) {
var l = j(i, !0)
, c = a("span", "flatpickr-day " + t, i.getDate().toString());
return c.dateObj = i,
c.$i = r,
c.setAttribute("aria-label", X.formatDate(i, X.config.ariaDateFormat)),
0 === e(i, X.now) && (X.todayDateElem = c,
c.classList.add("today")),
l ? (c.tabIndex = -1,
V(i) && (c.classList.add("selected"),
X.selectedDateElem = c,
"range" === X.config.mode && (n(c, "startRange", X.selectedDates[0] && 0 === e(i, X.selectedDates[0])),
n(c, "endRange", X.selectedDates[1] && 0 === e(i, X.selectedDates[1]))))) : (c.classList.add("disabled"),
X.selectedDates[0] && X.minRangeDate && i > X.minRangeDate && i < X.selectedDates[0] ? X.minRangeDate = i : X.selectedDates[0] && X.maxRangeDate && i < X.maxRangeDate && i > X.selectedDates[0] && (X.maxRangeDate = i)),
"range" === X.config.mode && (function(t) {
return !("range" !== X.config.mode || X.selectedDates.length < 2) && e(t, X.selectedDates[0]) >= 0 && e(t, X.selectedDates[1]) <= 0
}(i) && !V(i) && c.classList.add("inRange"),
1 === X.selectedDates.length && void 0 !== X.minRangeDate && void 0 !== X.maxRangeDate && (i < X.minRangeDate || i > X.maxRangeDate) && c.classList.add("notAllowed")),
X.weekNumbers && "prevMonthDay" !== t && o % 7 == 1 && X.weekNumbers.insertAdjacentHTML("beforeend", "" + X.config.getWeek(i) + ""),
z("onDayCreate", c),
c
}
function I(e, t) {
var n = e + t || 0
, a = void 0 !== e ? X.days.childNodes[n] : X.selectedDateElem || X.todayDateElem || X.days.childNodes[0]
, i = function() {
(a = a || X.days.childNodes[n]).focus(),
"range" === X.config.mode && R(a)
};
if (void 0 === a && 0 !== t)
return t > 0 ? (X.changeMonth(1, !0, void 0, !0),
n %= 42) : t < 0 && (X.changeMonth(-1, !0, void 0, !0),
n += 42),
Y(i);
i()
}
function Y(e) {
!0 === X.config.animate ? X._animationLoop.push(e) : e()
}
function _(e) {
if (void 0 !== X.daysContainer) {
var t = (new Date(X.currentYear,X.currentMonth,1).getDay() - X.l10n.firstDayOfWeek + 7) % 7
, n = "range" === X.config.mode
, i = X.utils.getDaysInMonth((X.currentMonth - 1 + 12) % 12)
, o = X.utils.getDaysInMonth()
, r = window.document.createDocumentFragment()
, l = i + 1 - t
, c = 0;
for (X.weekNumbers && X.weekNumbers.firstChild && (X.weekNumbers.textContent = ""),
n && (X.minRangeDate = new Date(X.currentYear,X.currentMonth - 1,l),
X.maxRangeDate = new Date(X.currentYear,X.currentMonth + 1,(42 - t) % o)); l <= i; l++,
c++)
r.appendChild(T("prevMonthDay", new Date(X.currentYear,X.currentMonth - 1,l), l, c));
for (l = 1; l <= o; l++,
c++)
r.appendChild(T("", new Date(X.currentYear,X.currentMonth,l), l, c));
for (var d = o + 1; d <= 42 - t; d++,
c++)
r.appendChild(T("nextMonthDay", new Date(X.currentYear,X.currentMonth + 1,d % o), d, c));
n && 1 === X.selectedDates.length && r.childNodes[0] ? (X._hidePrevMonthArrow = X._hidePrevMonthArrow || !!X.minRangeDate && X.minRangeDate > r.childNodes[0].dateObj,
X._hideNextMonthArrow = X._hideNextMonthArrow || !!X.maxRangeDate && X.maxRangeDate < new Date(X.currentYear,X.currentMonth + 1,1)) : Z();
var s = a("div", "dayContainer");
if (s.appendChild(r),
X.config.animate && void 0 !== e)
for (; X.daysContainer.childNodes.length > 1; )
X.daysContainer.removeChild(X.daysContainer.firstChild);
else
!function(e) {
for (; e.firstChild; )
e.removeChild(e.firstChild)
}(X.daysContainer);
e && e >= 0 ? X.daysContainer.appendChild(s) : X.daysContainer.insertBefore(s, X.daysContainer.firstChild),
X.days = X.daysContainer.childNodes[0]
}
}
function O() {
X.weekdayContainer || (X.weekdayContainer = a("div", "flatpickr-weekdays"));
var e = X.l10n.firstDayOfWeek
, t = X.l10n.weekdays.shorthand.slice();
return e > 0 && e < t.length && (t = t.splice(e, t.length).concat(t.splice(0, e))),
X.weekdayContainer.innerHTML = "\n \n " + t.join("") + "\n \n ",
X.weekdayContainer
}
function P(e, t, n, a) {
void 0 === t && (t = !0),
void 0 === n && (n = X.config.animate),
void 0 === a && (a = !1);
var i = t ? e : e - X.currentMonth;
if (!(i < 0 && X._hidePrevMonthArrow || i > 0 && X._hideNextMonthArrow)) {
if (X.currentMonth += i,
(X.currentMonth < 0 || X.currentMonth > 11) && (X.currentYear += X.currentMonth > 11 ? 1 : -1,
X.currentMonth = (X.currentMonth + 12) % 12,
z("onYearChange")),
_(n ? i : void 0),
!n)
return z("onMonthChange"),
Z();
var o = X.navigationCurrentMonth;
if (i < 0)
for (; o.nextSibling && /curr/.test(o.nextSibling.className); )
X.monthNav.removeChild(o.nextSibling);
else if (i > 0)
for (; o.previousSibling && /curr/.test(o.previousSibling.className); )
X.monthNav.removeChild(o.previousSibling);
X.oldCurMonth = X.navigationCurrentMonth,
X.navigationCurrentMonth = X.monthNav.insertBefore(X.oldCurMonth.cloneNode(!0), i > 0 ? X.oldCurMonth.nextSibling : X.oldCurMonth);
var r = X.daysContainer;
if (r.firstChild && r.lastChild && (i > 0 ? (r.firstChild.classList.add("slideLeft"),
r.lastChild.classList.add("slideLeftNew"),
X.oldCurMonth.classList.add("slideLeft"),
X.navigationCurrentMonth.classList.add("slideLeftNew")) : i < 0 && (r.firstChild.classList.add("slideRightNew"),
r.lastChild.classList.add("slideRight"),
X.oldCurMonth.classList.add("slideRight"),
X.navigationCurrentMonth.classList.add("slideRightNew"))),
X.currentMonthElement = X.navigationCurrentMonth.firstChild,
X.currentYearElement = X.navigationCurrentMonth.lastChild.childNodes[0],
Z(),
X.oldCurMonth.firstChild && (X.oldCurMonth.firstChild.textContent = c(X.currentMonth - i, X.config.shorthandCurrentMonth, X.l10n)),
Y(function() {
return z("onMonthChange")
}),
a && document.activeElement && document.activeElement.$i) {
var l = document.activeElement.$i;
Y(function() {
I(l, 0)
})
}
}
}
function F(e) {
return !(!X.config.appendTo || !X.config.appendTo.contains(e)) || X.calendarContainer.contains(e)
}
function L(e) {
if (X.isOpen && !X.config.inline) {
var t = F(e.target)
, n = e.target === X.input || e.target === X.altInput || X.element.contains(e.target) || e.path && e.path.indexOf && (~e.path.indexOf(X.input) || ~e.path.indexOf(X.altInput));
("blur" === e.type ? n && e.relatedTarget && !F(e.relatedTarget) : !n && !t) && -1 === X.config.ignoredFocusElements.indexOf(e.target) && (X.close(),
"range" === X.config.mode && 1 === X.selectedDates.length && (X.clear(!1),
X.redraw()))
}
}
function A(e) {
if (!(!e || X.currentYearElement.min && e < parseInt(X.currentYearElement.min) || X.currentYearElement.max && e > parseInt(X.currentYearElement.max))) {
var t = e
, n = X.currentYear !== t;
X.currentYear = t || X.currentYear,
X.config.maxDate && X.currentYear === X.config.maxDate.getFullYear() ? X.currentMonth = Math.min(X.config.maxDate.getMonth(), X.currentMonth) : X.config.minDate && X.currentYear === X.config.minDate.getFullYear() && (X.currentMonth = Math.max(X.config.minDate.getMonth(), X.currentMonth)),
n && (X.redraw(),
z("onYearChange"))
}
}
function j(t, n) {
void 0 === n && (n = !0);
var a = X.parseDate(t, void 0, n);
if (X.config.minDate && a && e(a, X.config.minDate, void 0 !== n ? n : !X.minDateHasTime) < 0 || X.config.maxDate && a && e(a, X.config.maxDate, void 0 !== n ? n : !X.maxDateHasTime) > 0)
return !1;
if (!X.config.enable.length && !X.config.disable.length)
return !0;
if (void 0 === a)
return !1;
for (var i = X.config.enable.length > 0, o = i ? X.config.enable : X.config.disable, r = 0, l = void 0; r < o.length; r++) {
if ("function" == typeof (l = o[r]) && l(a))
return i;
if (l instanceof Date && void 0 !== a && l.getTime() === a.getTime())
return i;
if ("string" == typeof l && void 0 !== a) {
var c = X.parseDate(l, void 0, !0);
return c && c.getTime() === a.getTime() ? i : !i
}
if ("object" == typeof l && void 0 !== a && l.from && l.to && a.getTime() >= l.from.getTime() && a.getTime() <= l.to.getTime())
return i
}
return !i
}
function H(e) {
var t = e.target === X._input
, n = F(e.target)
, a = X.config.allowInput
, i = X.isOpen && (!a || !t)
, o = X.config.inline && t && !a;
if ("Enter" === e.key && t) {
if (a)
return X.setDate(X._input.value, !0, e.target === X.altInput ? X.config.altFormat : X.config.dateFormat),
e.target.blur();
X.open()
} else if (n || i || o) {
var r = !!X.timeContainer && X.timeContainer.contains(e.target);
switch (e.key) {
case "Enter":
r ? Q() : K(e);
break;
case "Escape":
e.preventDefault(),
X.close();
break;
case "Backspace":
case "Delete":
t && !X.config.allowInput && X.clear();
break;
case "ArrowLeft":
case "ArrowRight":
if (r)
X.hourElement && X.hourElement.focus();
else if (e.preventDefault(),
X.daysContainer) {
var l = "ArrowRight" === e.key ? 1 : -1;
e.ctrlKey ? P(l, !0, void 0, !0) : I(e.target.$i, l)
}
break;
case "ArrowUp":
case "ArrowDown":
e.preventDefault();
var c = "ArrowDown" === e.key ? 1 : -1;
X.daysContainer && void 0 !== e.target.$i ? e.ctrlKey ? (A(X.currentYear - c),
I(e.target.$i, 0)) : r || I(e.target.$i, 7 * c) : X.config.enableTime && (!r && X.hourElement && X.hourElement.focus(),
p(e),
X._debouncedChange());
break;
case "Tab":
e.target === X.hourElement ? (e.preventDefault(),
X.minuteElement.select()) : e.target === X.minuteElement && (X.secondElement || X.amPM) ? (e.preventDefault(),
void 0 !== X.secondElement ? X.secondElement.focus() : void 0 !== X.amPM && X.amPM.focus()) : e.target === X.secondElement && X.amPM && (e.preventDefault(),
X.amPM.focus());
break;
case X.l10n.amPM[0].charAt(0):
void 0 !== X.amPM && e.target === X.amPM && (X.amPM.textContent = X.l10n.amPM[0],
w(),
Q());
break;
case X.l10n.amPM[1].charAt(0):
void 0 !== X.amPM && e.target === X.amPM && (X.amPM.textContent = X.l10n.amPM[1],
w(),
Q())
}
z("onKeyDown", e)
}
}
function R(e) {
if (1 === X.selectedDates.length && e.classList.contains("flatpickr-day") && void 0 !== X.minRangeDate && void 0 !== X.maxRangeDate) {
for (var t = e.dateObj, n = X.parseDate(X.selectedDates[0], void 0, !0), a = Math.min(t.getTime(), X.selectedDates[0].getTime()), i = Math.max(t.getTime(), X.selectedDates[0].getTime()), o = !1, r = a; r < i; r += d.DAY)
if (!j(new Date(r))) {
o = !0;
break
}
for (var l = 0, c = X.days.childNodes[l].dateObj; l < 42; l++,
c = X.days.childNodes[l] && X.days.childNodes[l].dateObj)
!function(r, l) {
var c = l.getTime()
, d = c < X.minRangeDate.getTime() || c > X.maxRangeDate.getTime()
, s = X.days.childNodes[r];
if (d)
return s.classList.add("notAllowed"),
["inRange", "startRange", "endRange"].forEach(function(e) {
s.classList.remove(e)
}),
"continue";
if (o && !d)
return "continue";
["startRange", "inRange", "endRange", "notAllowed"].forEach(function(e) {
s.classList.remove(e)
});
var u = Math.max(X.minRangeDate.getTime(), a)
, f = Math.min(X.maxRangeDate.getTime(), i);
e.classList.add(t < X.selectedDates[0] ? "startRange" : "endRange"),
n < t && c === n.getTime() ? s.classList.add("startRange") : n > t && c === n.getTime() && s.classList.add("endRange"),
c >= u && c <= f && s.classList.add("inRange")
}(l, c)
}
}
function W(e) {
return function(t) {
var n = X.config["_" + e + "Date"] = X.parseDate(t)
, a = X.config["_" + ("min" === e ? "max" : "min") + "Date"];
void 0 !== n && (X["min" === e ? "minDateHasTime" : "maxDateHasTime"] = n.getHours() > 0 || n.getMinutes() > 0 || n.getSeconds() > 0),
X.selectedDates && (X.selectedDates = X.selectedDates.filter(function(e) {
return j(e)
}),
X.selectedDates.length || "min" !== e || M(n),
Q()),
X.daysContainer && (J(),
void 0 !== n ? X.currentYearElement[e] = n.getFullYear().toString() : X.currentYearElement.removeAttribute(e),
X.currentYearElement.disabled = !!a && void 0 !== n && a.getFullYear() === n.getFullYear())
}
}
function B(e) {
if (void 0 === e && (e = X._positionElement),
void 0 !== X.calendarContainer) {
var t = X.calendarContainer.offsetHeight
, a = X.calendarContainer.offsetWidth
, i = X.config.position
, o = e.getBoundingClientRect()
, r = window.innerHeight - o.bottom
, l = "above" === i || "below" !== i && r < t && o.top > t
, c = window.pageYOffset + o.top + (l ? -t - 2 : e.offsetHeight + 2);
if (n(X.calendarContainer, "arrowTop", !l),
n(X.calendarContainer, "arrowBottom", l),
!X.config.inline) {
var d = window.pageXOffset + o.left
, s = window.document.body.offsetWidth - o.right
, u = d + a > window.document.body.offsetWidth;
n(X.calendarContainer, "rightMost", u),
X.config.static || (X.calendarContainer.style.top = c + "px",
u ? (X.calendarContainer.style.left = "auto",
X.calendarContainer.style.right = s + "px") : (X.calendarContainer.style.left = d + "px",
X.calendarContainer.style.right = "auto"))
}
}
}
function J() {
X.config.noCalendar || X.isMobile || (O(),
Z(),
_())
}
function K(t) {
t.preventDefault(),
t.stopPropagation();
var n = i(t.target, function(e) {
return e.classList && e.classList.contains("flatpickr-day") && !e.classList.contains("disabled") && !e.classList.contains("notAllowed")
});
if (void 0 !== n) {
var a = n
, o = X.latestSelectedDateObj = new Date(a.dateObj.getTime())
, r = o.getMonth() !== X.currentMonth && "range" !== X.config.mode;
if (X.selectedDateElem = a,
"single" === X.config.mode)
X.selectedDates = [o];
else if ("multiple" === X.config.mode) {
var l = V(o);
l ? X.selectedDates.splice(parseInt(l), 1) : X.selectedDates.push(o)
} else
"range" === X.config.mode && (2 === X.selectedDates.length && X.clear(),
X.selectedDates.push(o),
0 !== e(o, X.selectedDates[0], !0) && X.selectedDates.sort(function(e, t) {
return e.getTime() - t.getTime()
}));
if (w(),
r) {
var c = X.currentYear !== o.getFullYear();
X.currentYear = o.getFullYear(),
X.currentMonth = o.getMonth(),
c && z("onYearChange"),
z("onMonthChange")
}
if (_(),
X.config.minDate && X.minDateHasTime && X.config.enableTime && 0 === e(o, X.config.minDate) && M(X.config.minDate),
Q(),
X.config.enableTime && setTimeout(function() {
return X.showTimeInput = !0
}, 50),
"range" === X.config.mode && (1 === X.selectedDates.length ? (R(a),
X._hidePrevMonthArrow = X._hidePrevMonthArrow || void 0 !== X.minRangeDate && X.minRangeDate > X.days.childNodes[0].dateObj,
X._hideNextMonthArrow = X._hideNextMonthArrow || void 0 !== X.maxRangeDate && X.maxRangeDate < new Date(X.currentYear,X.currentMonth + 1,1)) : Z()),
z("onChange"),
r ? Y(function() {
return X.selectedDateElem && X.selectedDateElem.focus()
}) : I(a.$i, 0),
void 0 !== X.hourElement && setTimeout(function() {
return void 0 !== X.hourElement && X.hourElement.select()
}, 451),
X.config.closeOnSelect) {
var d = "single" === X.config.mode && !X.config.enableTime
, s = "range" === X.config.mode && 2 === X.selectedDates.length && !X.config.enableTime;
(d || s) && X.close()
}
}
}
function U(e, t) {
var n = [];
if (e instanceof Array)
n = e.map(function(e) {
return X.parseDate(e, t)
});
else if (e instanceof Date || "number" == typeof e)
n = [X.parseDate(e, t)];
else if ("string" == typeof e)
switch (X.config.mode) {
case "single":
n = [X.parseDate(e, t)];
break;
case "multiple":
n = e.split(X.config.conjunction).map(function(e) {
return X.parseDate(e, t)
});
break;
case "range":
n = e.split(X.l10n.rangeSeparator).map(function(e) {
return X.parseDate(e, t)
})
}
else
X.config.errorHandler(new Error("Invalid date supplied: " + JSON.stringify(e)));
X.selectedDates = n.filter(function(e) {
return e instanceof Date && j(e, !1)
}),
X.selectedDates.sort(function(e, t) {
return e.getTime() - t.getTime()
})
}
function $(e) {
return e.map(function(e) {
return "string" == typeof e || "number" == typeof e || e instanceof Date ? X.parseDate(e, void 0, !0) : e && "object" == typeof e && e.from && e.to ? {
from: X.parseDate(e.from, void 0),
to: X.parseDate(e.to, void 0)
} : e
}).filter(function(e) {
return e
})
}
function q(e, t, n) {
if (0 === e || e) {
var a, i = e;
if (e instanceof Date)
a = new Date(e.getTime());
else if ("string" != typeof e && void 0 !== e.toFixed)
a = new Date(e);
else if ("string" == typeof e) {
var o = t || (X.config || C.defaultConfig).dateFormat
, r = String(e).trim();
if ("today" === r)
a = new Date,
n = !0;
else if (/Z$/.test(r) || /GMT$/.test(r))
a = new Date(e);
else if (X.config && X.config.parseDate)
a = X.config.parseDate(e, o);
else {
a = X.config && X.config.noCalendar ? new Date((new Date).setHours(0, 0, 0, 0)) : new Date((new Date).getFullYear(),0,1,0,0,0,0);
for (var l = void 0, c = [], d = 0, s = 0, u = ""; d < o.length; d++) {
var f = o[d]
, m = "\\" === f
, g = "\\" === o[d - 1] || m;
if (v[f] && !g) {
u += v[f];
var p = new RegExp(u).exec(e);
p && (l = !0) && c["Y" !== f ? "push" : "unshift"]({
fn: h[f],
val: p[++s]
})
} else
m || (u += ".");
c.forEach(function(e) {
var t = e.fn
, n = e.val;
return a = t(a, n, X.l10n) || a
})
}
a = l ? a : void 0
}
}
if (a instanceof Date)
return !0 === n && a.setHours(0, 0, 0, 0),
a;
X.config.errorHandler(new Error("Invalid date provided: " + i))
}
}
function z(e, t) {
var n = X.config[e];
if (void 0 !== n && n.length > 0)
for (var a = 0; n[a] && a < n.length; a++)
n[a](X.selectedDates, X.input.value, X, t);
"onChange" === e && (X.input.dispatchEvent(G("change")),
X.input.dispatchEvent(G("input")))
}
function G(e) {
var t = document.createEvent("Event");
return t.initEvent(e, !0, !0),
t
}
function V(t) {
for (var n = 0; n < X.selectedDates.length; n++)
if (0 === e(X.selectedDates[n], t))
return "" + n;
return !1
}
function Z() {
X.config.noCalendar || X.isMobile || !X.monthNav || (X.currentMonthElement.textContent = c(X.currentMonth, X.config.shorthandCurrentMonth, X.l10n) + " ",
X.currentYearElement.value = X.currentYear.toString(),
X._hidePrevMonthArrow = void 0 !== X.config.minDate && (X.currentYear === X.config.minDate.getFullYear() ? X.currentMonth <= X.config.minDate.getMonth() : X.currentYear < X.config.minDate.getFullYear()),
X._hideNextMonthArrow = void 0 !== X.config.maxDate && (X.currentYear === X.config.maxDate.getFullYear() ? X.currentMonth + 1 > X.config.maxDate.getMonth() : X.currentYear > X.config.maxDate.getFullYear()))
}
function Q(e) {
if (void 0 === e && (e = !0),
!X.selectedDates.length)
return X.clear(e);
void 0 !== X.mobileInput && X.mobileFormatStr && (X.mobileInput.value = void 0 !== X.latestSelectedDateObj ? X.formatDate(X.latestSelectedDateObj, X.mobileFormatStr) : "");
var t = "range" !== X.config.mode ? X.config.conjunction : X.l10n.rangeSeparator;
X.input.value = X.selectedDates.map(function(e) {
return X.formatDate(e, X.config.dateFormat)
}).join(t),
void 0 !== X.altInput && (X.altInput.value = X.selectedDates.map(function(e) {
return X.formatDate(e, X.config.altFormat)
}).join(t)),
!1 !== e && z("onValueUpdate")
}
var X = {};
return X.parseDate = q,
X.formatDate = function(e, t) {
return void 0 !== X.config && void 0 !== X.config.formatDate ? X.config.formatDate(e, t) : t.split("").map(function(t, n, a) {
return D[t] && "\\" !== a[n - 1] ? D[t](e, X.l10n, X.config) : "\\" !== t ? t : ""
}).join("")
}
,
X._animationLoop = [],
X._handlers = [],
X._bind = y,
X._setHoursFromDate = M,
X.changeMonth = P,
X.changeYear = A,
X.clear = function(e) {
void 0 === e && (e = !0),
X.input.value = "",
X.altInput && (X.altInput.value = ""),
X.mobileInput && (X.mobileInput.value = ""),
X.selectedDates = [],
X.latestSelectedDateObj = void 0,
X.showTimeInput = !1,
X.redraw(),
e && z("onChange")
}
,
X.close = function() {
X.isOpen = !1,
X.isMobile || (X.calendarContainer.classList.remove("open"),
X._input.classList.remove("active")),
z("onClose")
}
,
X._createElement = a,
X.destroy = function() {
void 0 !== X.config && z("onDestroy");
for (var e = X._handlers.length; e--; ) {
var t = X._handlers[e];
t.element.removeEventListener(t.event, t.handler)
}
X._handlers = [],
X.mobileInput ? (X.mobileInput.parentNode && X.mobileInput.parentNode.removeChild(X.mobileInput),
X.mobileInput = void 0) : X.calendarContainer && X.calendarContainer.parentNode && X.calendarContainer.parentNode.removeChild(X.calendarContainer),
X.altInput && (X.input.type = "text",
X.altInput.parentNode && X.altInput.parentNode.removeChild(X.altInput),
delete X.altInput),
X.input && (X.input.type = X.input._type,
X.input.classList.remove("flatpickr-input"),
X.input.removeAttribute("readonly"),
X.input.value = ""),
["_showTimeInput", "latestSelectedDateObj", "_hideNextMonthArrow", "_hidePrevMonthArrow", "__hideNextMonthArrow", "__hidePrevMonthArrow", "isMobile", "isOpen", "selectedDateElem", "minDateHasTime", "maxDateHasTime", "days", "daysContainer", "_input", "_positionElement", "innerContainer", "rContainer", "monthNav", "todayDateElem", "calendarContainer", "weekdayContainer", "prevMonthNav", "nextMonthNav", "currentMonthElement", "currentYearElement", "navigationCurrentMonth", "selectedDateElem", "config"].forEach(function(e) {
try {
delete X[e]
} catch (e) {}
})
}
,
X.isEnabled = j,
X.jumpToDate = k,
X.open = function(e, t) {
if (void 0 === t && (t = X._input),
X.isMobile)
return e && (e.preventDefault(),
e.target && e.target.blur()),
setTimeout(function() {
void 0 !== X.mobileInput && X.mobileInput.click()
}, 0),
void z("onOpen");
if (!X._input.disabled && !X.config.inline) {
var n = X.isOpen;
X.isOpen = !0,
B(t),
X.calendarContainer.classList.add("open"),
X._input.classList.add("active"),
!n && z("onOpen")
}
}
,
X.redraw = J,
X.set = function(e, t) {
null !== e && "object" == typeof e ? Object.assign(X.config, e) : X.config[e] = t,
X.redraw(),
k()
}
,
X.setDate = function(e, t, n) {
if (void 0 === t && (t = !1),
0 !== e && !e)
return X.clear(t);
U(e, n),
X.showTimeInput = X.selectedDates.length > 0,
X.latestSelectedDateObj = X.selectedDates[0],
X.redraw(),
k(),
M(),
Q(t),
t && z("onChange")
}
,
X.toggle = function() {
if (X.isOpen)
return X.close();
X.open()
}
,
function() {
X.element = X.input = r,
X.isOpen = !1,
function() {
var e = ["wrap", "weekNumbers", "allowInput", "clickOpens", "time_24hr", "enableTime", "noCalendar", "altInput", "shorthandCurrentMonth", "inline", "static", "enableSeconds", "disableMobile"]
, t = ["onChange", "onClose", "onDayCreate", "onDestroy", "onKeyDown", "onMonthChange", "onOpen", "onParseConfig", "onReady", "onValueUpdate", "onYearChange"];
X.config = l({}, C.defaultConfig);
var n = l({}, s, JSON.parse(JSON.stringify(r.dataset || {})))
, a = {};
for (Object.defineProperty(X.config, "enable", {
get: function() {
return X.config._enable || []
},
set: function(e) {
X.config._enable = $(e)
}
}),
Object.defineProperty(X.config, "disable", {
get: function() {
return X.config._disable || []
},
set: function(e) {
X.config._disable = $(e)
}
}),
!n.dateFormat && n.enableTime && (a.dateFormat = n.noCalendar ? "H:i" + (n.enableSeconds ? ":S" : "") : C.defaultConfig.dateFormat + " H:i" + (n.enableSeconds ? ":S" : "")),
n.altInput && n.enableTime && !n.altFormat && (a.altFormat = n.noCalendar ? "h:i" + (n.enableSeconds ? ":S K" : " K") : C.defaultConfig.altFormat + " h:i" + (n.enableSeconds ? ":S" : "") + " K"),
Object.defineProperty(X.config, "minDate", {
get: function() {
return X.config._minDate
},
set: W("min")
}),
Object.defineProperty(X.config, "maxDate", {
get: function() {
return X.config._maxDate
},
set: W("max")
}),
Object.assign(X.config, a, n),
i = 0; i < e.length; i++)
X.config[e[i]] = !0 === X.config[e[i]] || "true" === X.config[e[i]];
for (i = t.length; i--; )
void 0 !== X.config[t[i]] && (X.config[t[i]] = g(X.config[t[i]] || []).map(u));
for (var i = 0; i < X.config.plugins.length; i++) {
var o = X.config.plugins[i](X) || {};
for (var c in o)
~t.indexOf(c) ? X.config[c] = g(o[c]).map(u).concat(X.config[c]) : void 0 === n[c] && (X.config[c] = o[c])
}
X.isMobile = !X.config.disableMobile && !X.config.inline && "single" === X.config.mode && !X.config.disable.length && !X.config.enable.length && !X.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),
z("onParseConfig")
}(),
"object" != typeof X.config.locale && void 0 === C.l10ns[X.config.locale] && X.config.errorHandler(new Error("flatpickr: invalid locale " + X.config.locale)),
X.l10n = l({}, C.l10ns.default, "object" == typeof X.config.locale ? X.config.locale : "default" !== X.config.locale ? C.l10ns[X.config.locale] : void 0),
v.K = "(" + X.l10n.amPM[0] + "|" + X.l10n.amPM[1] + "|" + X.l10n.amPM[0].toLowerCase() + "|" + X.l10n.amPM[1].toLowerCase() + ")",
X.input = X.config.wrap ? r.querySelector("[data-input]") : r,
X.input ? (X.input._type = X.input.type,
X.input.type = "text",
X.input.classList.add("flatpickr-input"),
X._input = X.input,
X.config.altInput && (X.altInput = a(X.input.nodeName, X.input.className + " " + X.config.altInputClass),
X._input = X.altInput,
X.altInput.placeholder = X.input.placeholder,
X.altInput.disabled = X.input.disabled,
X.altInput.required = X.input.required,
X.altInput.type = "text",
X.input.type = "hidden",
!X.config.static && X.input.parentNode && X.input.parentNode.insertBefore(X.altInput, X.input.nextSibling)),
X.config.allowInput || X._input.setAttribute("readonly", "readonly"),
X._positionElement = X.config.positionElement || X._input) : X.config.errorHandler(new Error("Invalid input element specified")),
function() {
X.selectedDates = [],
X.now = new Date;
var e = X.config.defaultDate || X.input.value;
e && U(e, X.config.dateFormat);
var t = X.selectedDates.length ? X.selectedDates[0] : X.config.minDate && X.config.minDate.getTime() > X.now.getTime() ? X.config.minDate : X.config.maxDate && X.config.maxDate.getTime() < X.now.getTime() ? X.config.maxDate : X.now;
X.currentYear = t.getFullYear(),
X.currentMonth = t.getMonth(),
X.selectedDates.length && (X.latestSelectedDateObj = X.selectedDates[0]),
X.minDateHasTime = !!X.config.minDate && (X.config.minDate.getHours() > 0 || X.config.minDate.getMinutes() > 0 || X.config.minDate.getSeconds() > 0),
X.maxDateHasTime = !!X.config.maxDate && (X.config.maxDate.getHours() > 0 || X.config.maxDate.getMinutes() > 0 || X.config.maxDate.getSeconds() > 0),
Object.defineProperty(X, "showTimeInput", {
get: function() {
return X._showTimeInput
},
set: function(e) {
X._showTimeInput = e,
X.calendarContainer && n(X.calendarContainer, "showTimeInput", e),
B()
}
})
}(),
X.utils = {
getDaysInMonth: function(e, t) {
return void 0 === e && (e = X.currentMonth),
void 0 === t && (t = X.currentYear),
1 === e && (t % 4 == 0 && t % 100 != 0 || t % 400 == 0) ? 29 : X.l10n.daysInMonth[e]
}
},
X.isMobile || function() {
var e = window.document.createDocumentFragment();
if (X.calendarContainer = a("div", "flatpickr-calendar"),
X.calendarContainer.tabIndex = -1,
!X.config.noCalendar) {
if (e.appendChild(function() {
var e = window.document.createDocumentFragment();
X.monthNav = a("div", "flatpickr-month"),
X.prevMonthNav = a("span", "flatpickr-prev-month"),
X.prevMonthNav.innerHTML = X.config.prevArrow,
X.currentMonthElement = a("span", "cur-month"),
X.currentMonthElement.title = X.l10n.scrollTitle;
var t = o("cur-year");
return X.currentYearElement = t.childNodes[0],
X.currentYearElement.title = X.l10n.scrollTitle,
X.config.minDate && (X.currentYearElement.min = X.config.minDate.getFullYear().toString()),
X.config.maxDate && (X.currentYearElement.max = X.config.maxDate.getFullYear().toString(),
X.currentYearElement.disabled = !!X.config.minDate && X.config.minDate.getFullYear() === X.config.maxDate.getFullYear()),
X.nextMonthNav = a("span", "flatpickr-next-month"),
X.nextMonthNav.innerHTML = X.config.nextArrow,
X.navigationCurrentMonth = a("div", "flatpickr-current-month"),
X.navigationCurrentMonth.appendChild(X.currentMonthElement),
X.navigationCurrentMonth.appendChild(t),
e.appendChild(X.prevMonthNav),
e.appendChild(X.navigationCurrentMonth),
e.appendChild(X.nextMonthNav),
X.monthNav.appendChild(e),
Object.defineProperty(X, "_hidePrevMonthArrow", {
get: function() {
return X.__hidePrevMonthArrow
},
set: function(e) {
X.__hidePrevMonthArrow !== e && (X.prevMonthNav.style.display = e ? "none" : "block"),
X.__hidePrevMonthArrow = e
}
}),
Object.defineProperty(X, "_hideNextMonthArrow", {
get: function() {
return X.__hideNextMonthArrow
},
set: function(e) {
X.__hideNextMonthArrow !== e && (X.nextMonthNav.style.display = e ? "none" : "block"),
X.__hideNextMonthArrow = e
}
}),
Z(),
X.monthNav
}()),
X.innerContainer = a("div", "flatpickr-innerContainer"),
X.config.weekNumbers) {
var t = function() {
X.calendarContainer.classList.add("hasWeeks");
var e = a("div", "flatpickr-weekwrapper");
e.appendChild(a("span", "flatpickr-weekday", X.l10n.weekAbbreviation));
var t = a("div", "flatpickr-weeks");
return e.appendChild(t),
{
weekWrapper: e,
weekNumbers: t
}
}()
, i = t.weekWrapper
, r = t.weekNumbers;
X.innerContainer.appendChild(i),
X.weekNumbers = r,
X.weekWrapper = i
}
X.rContainer = a("div", "flatpickr-rContainer"),
X.rContainer.appendChild(O()),
X.daysContainer || (X.daysContainer = a("div", "flatpickr-days"),
X.daysContainer.tabIndex = -1),
_(),
X.rContainer.appendChild(X.daysContainer),
X.innerContainer.appendChild(X.rContainer),
e.appendChild(X.innerContainer)
}
X.config.enableTime && e.appendChild(function() {
X.calendarContainer.classList.add("hasTime"),
X.config.noCalendar && X.calendarContainer.classList.add("noCalendar"),
X.timeContainer = a("div", "flatpickr-time"),
X.timeContainer.tabIndex = -1;
var e = a("span", "flatpickr-time-separator", ":")
, t = o("flatpickr-hour");
X.hourElement = t.childNodes[0];
var n = o("flatpickr-minute");
if (X.minuteElement = n.childNodes[0],
X.hourElement.tabIndex = X.minuteElement.tabIndex = -1,
X.hourElement.value = f(X.latestSelectedDateObj ? X.latestSelectedDateObj.getHours() : X.config.time_24hr ? X.config.defaultHour : function(e) {
switch (e % 24) {
case 0:
case 12:
return 12;
default:
return e % 12
}
}(X.config.defaultHour)),
X.minuteElement.value = f(X.latestSelectedDateObj ? X.latestSelectedDateObj.getMinutes() : X.config.defaultMinute),
X.hourElement.step = X.config.hourIncrement.toString(),
X.minuteElement.step = X.config.minuteIncrement.toString(),
X.hourElement.min = X.config.time_24hr ? "0" : "1",
X.hourElement.max = X.config.time_24hr ? "23" : "12",
X.minuteElement.min = "0",
X.minuteElement.max = "59",
X.hourElement.title = X.minuteElement.title = X.l10n.scrollTitle,
X.timeContainer.appendChild(t),
X.timeContainer.appendChild(e),
X.timeContainer.appendChild(n),
X.config.time_24hr && X.timeContainer.classList.add("time24hr"),
X.config.enableSeconds) {
X.timeContainer.classList.add("hasSeconds");
var i = o("flatpickr-second");
X.secondElement = i.childNodes[0],
X.secondElement.value = f(X.latestSelectedDateObj ? X.latestSelectedDateObj.getSeconds() : X.config.defaultSeconds),
X.secondElement.step = X.minuteElement.step,
X.secondElement.min = X.minuteElement.min,
X.secondElement.max = X.minuteElement.max,
X.timeContainer.appendChild(a("span", "flatpickr-time-separator", ":")),
X.timeContainer.appendChild(i)
}
return X.config.time_24hr || (X.amPM = a("span", "flatpickr-am-pm", X.l10n.amPM[m((X.latestSelectedDateObj ? X.hourElement.value : X.config.defaultHour) > 11)]),
X.amPM.title = X.l10n.toggleTitle,
X.amPM.tabIndex = -1,
X.timeContainer.appendChild(X.amPM)),
X.timeContainer
}()),
n(X.calendarContainer, "rangeMode", "range" === X.config.mode),
n(X.calendarContainer, "animate", X.config.animate),
X.calendarContainer.appendChild(e);
var l = void 0 !== X.config.appendTo && X.config.appendTo.nodeType;
if ((X.config.inline || X.config.static) && (X.calendarContainer.classList.add(X.config.inline ? "inline" : "static"),
X.config.inline && (!l && X.element.parentNode ? X.element.parentNode.insertBefore(X.calendarContainer, X._input.nextSibling) : void 0 !== X.config.appendTo && X.config.appendTo.appendChild(X.calendarContainer)),
X.config.static)) {
var c = a("div", "flatpickr-wrapper");
X.element.parentNode && X.element.parentNode.insertBefore(c, X.element),
c.appendChild(X.element),
X.altInput && c.appendChild(X.altInput),
c.appendChild(X.calendarContainer)
}
X.config.static || X.config.inline || (void 0 !== X.config.appendTo ? X.config.appendTo : window.document.body).appendChild(X.calendarContainer)
}(),
function() {
if (X.config.wrap && ["open", "close", "toggle", "clear"].forEach(function(e) {
Array.prototype.forEach.call(X.element.querySelectorAll("[data-" + e + "]"), function(t) {
return y(t, "click", X[e])
})
}),
X.isMobile)
!function() {
var e = X.config.enableTime ? X.config.noCalendar ? "time" : "datetime-local" : "date";
X.mobileInput = a("input", X.input.className + " flatpickr-mobile"),
X.mobileInput.step = X.input.getAttribute("step") || "any",
X.mobileInput.tabIndex = 1,
X.mobileInput.type = e,
X.mobileInput.disabled = X.input.disabled,
X.mobileInput.placeholder = X.input.placeholder,
X.mobileFormatStr = "datetime-local" === e ? "Y-m-d\\TH:i:S" : "date" === e ? "Y-m-d" : "H:i:S",
X.selectedDates.length && (X.mobileInput.defaultValue = X.mobileInput.value = X.formatDate(X.selectedDates[0], X.mobileFormatStr)),
X.config.minDate && (X.mobileInput.min = X.formatDate(X.config.minDate, "Y-m-d")),
X.config.maxDate && (X.mobileInput.max = X.formatDate(X.config.maxDate, "Y-m-d")),
X.input.type = "hidden",
void 0 !== X.altInput && (X.altInput.type = "hidden");
try {
X.input.parentNode && X.input.parentNode.insertBefore(X.mobileInput, X.input.nextSibling)
} catch (e) {}
y(X.mobileInput, "change", function(e) {
X.setDate(e.target.value, !1, X.mobileFormatStr),
z("onChange"),
z("onClose")
})
}();
else {
var e = t(function() {
!X.isOpen || X.config.static || X.config.inline || B()
}, 50);
X._debouncedChange = t(E, 300),
"range" === X.config.mode && X.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent) && y(X.daysContainer, "mouseover", function(e) {
return R(e.target)
}),
y(window.document.body, "keydown", H),
X.config.static || y(X._input, "keydown", H),
X.config.inline || X.config.static || y(window, "resize", e),
void 0 !== window.ontouchstart && y(window.document.body, "touchstart", L),
y(window.document.body, "mousedown", x(L)),
y(X._input, "blur", L),
!0 === X.config.clickOpens && (y(X._input, "focus", X.open),
y(X._input, "mousedown", x(X.open))),
void 0 !== X.daysContainer && (X.monthNav.addEventListener("wheel", function(e) {
return e.preventDefault()
}),
y(X.monthNav, "wheel", t(function(e) {
e.preventDefault();
var t = X.currentYearElement.parentNode && X.currentYearElement.parentNode.contains(e.target);
if (e.target === X.currentMonthElement || t) {
var n = function(e) {
return (e.wheelDelta || -e.deltaY) >= 0 ? 1 : -1
}(e);
t ? (A(X.currentYear + n),
e.target.value = X.currentYear.toString()) : X.changeMonth(n, !0, !1)
}
}, 10)),
y(X.monthNav, "mousedown", x(function(e) {
var t = X.prevMonthNav.contains(e.target)
, n = X.nextMonthNav.contains(e.target);
t || n ? P(t ? -1 : 1) : e.target === X.currentYearElement ? (e.preventDefault(),
X.currentYearElement.select()) : "arrowUp" === e.target.className ? X.changeYear(X.currentYear + 1) : "arrowDown" === e.target.className && X.changeYear(X.currentYear - 1)
})),
y(X.monthNav, ["keyup", "increment"], function(e) {
var t = parseInt(e.target.value) + (e.delta || 0);
4 !== t.toString().length && "Enter" !== e.key || (X.currentYearElement.blur(),
/[^\d]/.test(t.toString()) || A(t))
}),
y(X.daysContainer, "mousedown", x(K)),
X.config.animate && (y(X.daysContainer, ["webkitAnimationEnd", "animationend"], function(e) {
if (X.daysContainer && X.daysContainer.childNodes.length > 1)
switch (e.animationName) {
case "fpSlideLeft":
X.daysContainer.lastChild && X.daysContainer.lastChild.classList.remove("slideLeftNew"),
X.daysContainer.removeChild(X.daysContainer.firstChild),
X.days = X.daysContainer.firstChild,
N();
break;
case "fpSlideRight":
X.daysContainer.firstChild && X.daysContainer.firstChild.classList.remove("slideRightNew"),
X.daysContainer.removeChild(X.daysContainer.lastChild),
X.days = X.daysContainer.firstChild,
N()
}
}),
y(X.monthNav, ["webkitAnimationEnd", "animationend"], function(e) {
switch (e.animationName) {
case "fpSlideLeftNew":
case "fpSlideRightNew":
X.navigationCurrentMonth.classList.remove("slideLeftNew"),
X.navigationCurrentMonth.classList.remove("slideRightNew");
for (var t = X.navigationCurrentMonth; t.nextSibling && /curr/.test(t.nextSibling.className); )
X.monthNav.removeChild(t.nextSibling);
for (; t.previousSibling && /curr/.test(t.previousSibling.className); )
X.monthNav.removeChild(t.previousSibling);
X.oldCurMonth = void 0
}
}))),
void 0 !== X.timeContainer && void 0 !== X.minuteElement && void 0 !== X.hourElement && (y(X.timeContainer, ["wheel", "input", "increment"], p),
y(X.timeContainer, "mousedown", x(function(e) {
~e.target.className.indexOf("arrow") && S(e, e.target.classList.contains("arrowUp") ? 1 : -1)
})),
y(X.timeContainer, ["wheel", "increment"], X._debouncedChange),
y(X.timeContainer, "input", E),
y([X.hourElement, X.minuteElement], ["focus", "click"], function(e) {
return e.target.select()
}),
void 0 !== X.secondElement && y(X.secondElement, "focus", function() {
return X.secondElement && X.secondElement.select()
}),
void 0 !== X.amPM && y(X.amPM, "mousedown", x(function(e) {
p(e),
E()
})))
}
}(),
(X.selectedDates.length || X.config.noCalendar) && (X.config.enableTime && M(X.config.noCalendar ? X.latestSelectedDateObj || X.config.minDate : void 0),
Q(!1)),
X.showTimeInput = X.selectedDates.length > 0 || X.config.noCalendar,
void 0 !== X.weekWrapper && void 0 !== X.daysContainer && (X.calendarContainer.style.width = X.daysContainer.offsetWidth + X.weekWrapper.offsetWidth + "px"),
X.isMobile || B(),
z("onReady")
}(),
X
}(M, s || {}),
p.push(M._flatpickr)
} catch (e) {
console.error(e)
}
}
return 1 === p.length ? p[0] : p
}
var l = Object.assign || function(e) {
for (var t, n = 1, a = arguments.length; n < a; n++) {
t = arguments[n];
for (var i in t)
Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i])
}
return e
}
, c = function(e, t, n) {
return n.months[t ? "shorthand" : "longhand"][e]
}
, d = {
DAY: 864e5
}
, s = {
_disable: [],
_enable: [],
allowInput: !1,
altFormat: "F j, Y",
altInput: !1,
altInputClass: "form-control input",
animate: "object" == typeof window && -1 === window.navigator.userAgent.indexOf("MSIE"),
ariaDateFormat: "F j, Y",
clickOpens: !0,
closeOnSelect: !0,
conjunction: ", ",
dateFormat: "Y-m-d",
defaultHour: 12,
defaultMinute: 0,
defaultSeconds: 0,
disable: [],
disableMobile: !1,
enable: [],
enableSeconds: !1,
enableTime: !1,
errorHandler: console.warn,
getWeek: function(e) {
var t = new Date(e.getFullYear(),0,1);
return Math.ceil(((e.getTime() - t.getTime()) / 864e5 + t.getDay() + 1) / 7)
},
hourIncrement: 1,
ignoredFocusElements: [],
inline: !1,
locale: "default",
minuteIncrement: 5,
mode: "single",
nextArrow: "",
noCalendar: !1,
onChange: [],
onClose: [],
onDayCreate: [],
onDestroy: [],
onKeyDown: [],
onMonthChange: [],
onOpen: [],
onParseConfig: [],
onReady: [],
onValueUpdate: [],
onYearChange: [],
plugins: [],
position: "auto",
positionElement: void 0,
prevArrow: "",
shorthandCurrentMonth: !1,
static: !1,
time_24hr: !1,
weekNumbers: !1,
wrap: !1
}
, u = {
weekdays: {
shorthand: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
longhand: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
},
months: {
shorthand: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
longhand: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
},
daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],
firstDayOfWeek: 0,
ordinal: function(e) {
var t = e % 100;
if (t > 3 && t < 21)
return "th";
switch (t % 10) {
case 1:
return "st";
case 2:
return "nd";
case 3:
return "rd";
default:
return "th"
}
},
rangeSeparator: " to ",
weekAbbreviation: "Wk",
scrollTitle: "Scroll to increment",
toggleTitle: "Click to toggle",
amPM: ["AM", "PM"]
}
, f = function(e) {
return ("0" + e).slice(-2)
}
, m = function(e) {
return !0 === e ? 1 : 0
}
, g = function(e) {
return e instanceof Array ? e : [e]
}
, p = function() {}
, h = {
D: p,
F: function(e, t, n) {
e.setMonth(n.months.longhand.indexOf(t))
},
G: function(e, t) {
e.setHours(parseFloat(t))
},
H: function(e, t) {
e.setHours(parseFloat(t))
},
J: function(e, t) {
e.setDate(parseFloat(t))
},
K: function(e, t, n) {
e.setHours(e.getHours() % 12 + 12 * m(new RegExp(n.amPM[1],"i").test(t)))
},
M: function(e, t, n) {
e.setMonth(n.months.shorthand.indexOf(t))
},
S: function(e, t) {
e.setSeconds(parseFloat(t))
},
U: function(e, t) {
return new Date(1e3 * parseFloat(t))
},
W: function(e, t) {
var n = parseInt(t);
return new Date(e.getFullYear(),0,2 + 7 * (n - 1),0,0,0,0)
},
Y: function(e, t) {
e.setFullYear(parseFloat(t))
},
Z: function(e, t) {
return new Date(t)
},
d: function(e, t) {
e.setDate(parseFloat(t))
},
h: function(e, t) {
e.setHours(parseFloat(t))
},
i: function(e, t) {
e.setMinutes(parseFloat(t))
},
j: function(e, t) {
e.setDate(parseFloat(t))
},
l: p,
m: function(e, t) {
e.setMonth(parseFloat(t) - 1)
},
n: function(e, t) {
e.setMonth(parseFloat(t) - 1)
},
s: function(e, t) {
e.setSeconds(parseFloat(t))
},
w: p,
y: function(e, t) {
e.setFullYear(2e3 + parseFloat(t))
}
}
, v = {
D: "(\\w+)",
F: "(\\w+)",
G: "(\\d\\d|\\d)",
H: "(\\d\\d|\\d)",
J: "(\\d\\d|\\d)\\w+",
K: "",
M: "(\\w+)",
S: "(\\d\\d|\\d)",
U: "(.+)",
W: "(\\d\\d|\\d)",
Y: "(\\d{4})",
Z: "(.+)",
d: "(\\d\\d|\\d)",
h: "(\\d\\d|\\d)",
i: "(\\d\\d|\\d)",
j: "(\\d\\d|\\d)",
l: "(\\w+)",
m: "(\\d\\d|\\d)",
n: "(\\d\\d|\\d)",
s: "(\\d\\d|\\d)",
w: "(\\d\\d|\\d)",
y: "(\\d{2})"
}
, D = {
Z: function(e) {
return e.toISOString()
},
D: function(e, t, n) {
return t.weekdays.shorthand[D.w(e, t, n)]
},
F: function(e, t, n) {
return c(D.n(e, t, n) - 1, !1, t)
},
G: function(e, t, n) {
return f(D.h(e, t, n))
},
H: function(e) {
return f(e.getHours())
},
J: function(e, t) {
return void 0 !== t.ordinal ? e.getDate() + t.ordinal(e.getDate()) : e.getDate()
},
K: function(e, t) {
return t.amPM[m(e.getHours() > 11)]
},
M: function(e, t) {
return c(e.getMonth(), !0, t)
},
S: function(e) {
return f(e.getSeconds())
},
U: function(e) {
return e.getTime() / 1e3
},
W: function(e, t, n) {
return n.getWeek(e)
},
Y: function(e) {
return e.getFullYear()
},
d: function(e) {
return f(e.getDate())
},
h: function(e) {
return e.getHours() % 12 ? e.getHours() % 12 : 12
},
i: function(e) {
return f(e.getMinutes())
},
j: function(e) {
return e.getDate()
},
l: function(e, t) {
return t.weekdays.longhand[e.getDay()]
},
m: function(e) {
return f(e.getMonth() + 1)
},
n: function(e) {
return e.getMonth() + 1
},
s: function(e) {
return e.getSeconds()
},
w: function(e) {
return e.getDay()
},
y: function(e) {
return String(e.getFullYear()).substring(2)
}
};
"function" != typeof Object.assign && (Object.assign = function(e) {
for (var t = [], n = 1; n < arguments.length; n++)
t[n - 1] = arguments[n];
if (!e)
throw TypeError("Cannot convert undefined or null to object");
for (var a = 0, i = t; a < i.length; a++)
!function(t) {
t && Object.keys(t).forEach(function(n) {
return e[n] = t[n]
})
}(i[a]);
return e
}
),
"undefined" != typeof HTMLElement && (HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function(e) {
return r(this, e)
}
,
HTMLElement.prototype.flatpickr = function(e) {
return r([this], e)
}
);
var C;
return C = function(e, t) {
return e instanceof NodeList ? r(e, t) : "string" == typeof e ? r(window.document.querySelectorAll(e), t) : r([e], t)
}
,
"object" == typeof window && (window.flatpickr = C),
C.defaultConfig = s,
C.l10ns = {
en: l({}, u),
default: l({}, u)
},
C.localize = function(e) {
C.l10ns.default = l({}, C.l10ns.default, e)
}
,
C.setDefaults = function(e) {
C.defaultConfig = l({}, C.defaultConfig, e)
}
,
"undefined" != typeof jQuery && (jQuery.fn.flatpickr = function(e) {
return r(this, e)
}
),
Date.prototype.fp_incr = function(e) {
return new Date(this.getFullYear(),this.getMonth(),this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e))
}
,
C
});