From 8e6b1989f126113a20a9ef07ed45c4372cb8ed3c Mon Sep 17 00:00:00 2001 From: Dmitry Date: Mon, 19 Dec 2016 21:44:20 +0000 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B6=D0=B0=D1=82=D0=B0=D1=8F=20=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- static/js/bootstrap-datetimepicker.min.js | 772 +--------------------- 1 file changed, 2 insertions(+), 770 deletions(-) diff --git a/static/js/bootstrap-datetimepicker.min.js b/static/js/bootstrap-datetimepicker.min.js index 9e89433..4736d7f 100644 --- a/static/js/bootstrap-datetimepicker.min.js +++ b/static/js/bootstrap-datetimepicker.min.js @@ -1,776 +1,8 @@ -/*! version : 4.17.42 +/*! version : 4.17.43 ========================================================= bootstrap-datetimejs https://github.com/Eonasdan/bootstrap-datetimepicker Copyright (c) 2015 Jonathan Peterson ========================================================= */ -/* - The MIT License (MIT) - - Copyright (c) 2015 Jonathan Peterson - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - */ -/*global define:false */ -/*global exports:false */ -/*global require:false */ -/*global jQuery:false */ -/*global moment:false */ -!function (a) { - "use strict"; - if ("function" == typeof define && define.amd) -// AMD is used - Register as an anonymous module. - define(["jquery", "moment"], a); else if ("object" == typeof exports)a(require("jquery"), require("moment")); else { -// Neither AMD nor CommonJS used. Use global variables. - if ("undefined" == typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first"; - if ("undefined" == typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first"; - a(jQuery, moment) - } -}(function (a, b) { - "use strict"; - if (!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first"); - var c = function (c, d) { - var e, f, g, h, i, j, k, l = {}, m = !0, n = !1, o = !1, p = 0, q = [ - {clsName: "days", navFnc: "M", navStep: 1}, - {clsName: "months", navFnc: "y", navStep: 1}, - {clsName: "years", navFnc: "y", navStep: 10}, - {clsName: "decades", navFnc: "y", navStep: 100} - ], r = ["days", "months", "years", "decades"], s = ["top", "bottom", "auto"], t = ["left", "right", "auto"], u = ["default", "top", "bottom"], v = {up: 38, 38: "up", down: 40, 40: "down", left: 37, 37: "left", right: 39, 39: "right", tab: 9, 9: "tab", escape: 27, 27: "escape", enter: 13, 13: "enter", pageUp: 33, 33: "pageUp", pageDown: 34, 34: "pageDown", shift: 16, 16: "shift", control: 17, 17: "control", space: 32, 32: "space", t: 84, 84: "t", "delete": 46, 46: "delete"}, w = {}, /******************************************************************************** - * - * Private functions - * - ********************************************************************************/ - x = function () { - return void 0 !== b.tz && void 0 !== d.timeZone && null !== d.timeZone && "" !== d.timeZone - }, y = function (a) { - var c; - return c = void 0 === a || null === a ? b() : x() ? b.tz(a, j, d.useStrict, d.timeZone) : b(a, j, d.useStrict), x() && c.tz(d.timeZone), c - }, z = function (a) { - if ("string" != typeof a || a.length > 1)throw new TypeError("isEnabled expects a single character string parameter"); - switch (a) { - case"y": - return-1 !== i.indexOf("Y"); - case"M": - return-1 !== i.indexOf("M"); - case"d": - return-1 !== i.toLowerCase().indexOf("d"); - case"h": - case"H": - return-1 !== i.toLowerCase().indexOf("h"); - case"m": - return-1 !== i.indexOf("m"); - case"s": - return-1 !== i.indexOf("s"); - default: - return!1 - } - }, A = function () { - return z("h") || z("m") || z("s") - }, B = function () { - return z("y") || z("M") || z("d") - }, C = function () { - var b = a("").append(a("").append(a("").addClass("prev").attr("data-action", "previous").append(a("").addClass(d.icons.previous))).append(a("").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", d.calendarWeeks ? "6" : "5")).append(a("").addClass("next").attr("data-action", "next").append(a("").addClass(d.icons.next)))), c = a("").append(a("").append(a("").attr("colspan", d.calendarWeeks ? "8" : "7"))); - return[a("
").addClass("datepicker-days").append(a("").addClass("table-condensed").append(b).append(a(""))), a("
").addClass("datepicker-months").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())), a("
").addClass("datepicker-years").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())), a("
").addClass("datepicker-decades").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone()))] - }, D = function () { - var b = a(""), c = a(""), e = a(""); - return z("h") && (b.append(a("
").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.incrementHour}).addClass("btn").attr("data-action", "incrementHours").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-hour").attr({"data-time-component": "hours", title: d.tooltips.pickHour}).attr("data-action", "showHours"))), e.append(a("").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.decrementHour}).addClass("btn").attr("data-action", "decrementHours").append(a("").addClass(d.icons.down))))), z("m") && (z("h") && (b.append(a("").addClass("separator")), c.append(a("").addClass("separator").html(":")), e.append(a("").addClass("separator"))), b.append(a("").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.incrementMinute}).addClass("btn").attr("data-action", "incrementMinutes").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-minute").attr({"data-time-component": "minutes", title: d.tooltips.pickMinute}).attr("data-action", "showMinutes"))), e.append(a("").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.decrementMinute}).addClass("btn").attr("data-action", "decrementMinutes").append(a("").addClass(d.icons.down))))), z("s") && (z("m") && (b.append(a("").addClass("separator")), c.append(a("").addClass("separator").html(":")), e.append(a("").addClass("separator"))), b.append(a("").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.incrementSecond}).addClass("btn").attr("data-action", "incrementSeconds").append(a("").addClass(d.icons.up)))), c.append(a("").append(a("").addClass("timepicker-second").attr({"data-time-component": "seconds", title: d.tooltips.pickSecond}).attr("data-action", "showSeconds"))), e.append(a("").append(a("").attr({href: "#", tabindex: "-1", title: d.tooltips.decrementSecond}).addClass("btn").attr("data-action", "decrementSeconds").append(a("").addClass(d.icons.down))))), h || (b.append(a("").addClass("separator")), c.append(a("").append(a("").addClass("separator"))), a("
").addClass("timepicker-picker").append(a("").addClass("table-condensed").append([b, c, e])) - }, E = function () { - var b = a("
").addClass("timepicker-hours").append(a("
").addClass("table-condensed")), c = a("
").addClass("timepicker-minutes").append(a("
").addClass("table-condensed")), d = a("
").addClass("timepicker-seconds").append(a("
").addClass("table-condensed")), e = [D()]; - return z("h") && e.push(b), z("m") && e.push(c), z("s") && e.push(d), e - }, F = function () { - var b = []; - return d.showTodayButton && b.push(a("
").append(a("").attr({"data-action": "today", title: d.tooltips.today}).append(a("").addClass(d.icons.today)))), !d.sideBySide && B() && A() && b.push(a("").append(a("").attr({"data-action": "togglePicker", title: d.tooltips.selectTime}).append(a("").addClass(d.icons.time)))), d.showClear && b.push(a("").append(a("").attr({"data-action": "clear", title: d.tooltips.clear}).append(a("").addClass(d.icons.clear)))), d.showClose && b.push(a("").append(a("").attr({"data-action": "close", title: d.tooltips.close}).append(a("").addClass(d.icons.close)))), a("").addClass("table-condensed").append(a("").append(a("").append(b))) - }, G = function () { - var b = a("
").addClass("bootstrap-datetimepicker-widget dropdown-menu"), c = a("
").addClass("datepicker").append(C()), e = a("
").addClass("timepicker").append(E()), f = a("
    ").addClass("list-unstyled"), g = a("
  • ").addClass("picker-switch" + (d.collapse ? " accordion-toggle" : "")).append(F()); - return d.inline && b.removeClass("dropdown-menu"), h && b.addClass("usetwentyfour"), z("s") && !h && b.addClass("wider"), d.sideBySide && B() && A() ? (b.addClass("timepicker-sbs"), "top" === d.toolbarPlacement && b.append(g), b.append(a("
    ").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))), "bottom" === d.toolbarPlacement && b.append(g), b) : ("top" === d.toolbarPlacement && f.append(g), B() && f.append(a("
  • ").addClass(d.collapse && A() ? "collapse in" : "").append(c)), "default" === d.toolbarPlacement && f.append(g), A() && f.append(a("
  • ").addClass(d.collapse && B() ? "collapse" : "").append(e)), "bottom" === d.toolbarPlacement && f.append(g), b.append(f)) - }, H = function () { - var b, e = {}; - return b = c.is("input") || d.inline ? c.data() : c.find("input").data(), b.dateOptions && b.dateOptions instanceof Object && (e = a.extend(!0, e, b.dateOptions)), a.each(d, function (a) { - var c = "date" + a.charAt(0).toUpperCase() + a.slice(1); - void 0 !== b[c] && (e[a] = b[c]) - }), e - }, I = function () { - var b, e = (n || c).position(), f = (n || c).offset(), g = d.widgetPositioning.vertical, h = d.widgetPositioning.horizontal; - if (d.widgetParent)b = d.widgetParent.append(o); else if (c.is("input"))b = c.after(o).parent(); else { - if (d.inline)return void(b = c.append(o)); - b = c, c.children().first().after(o) - } - if ( -// Top and bottom logic - "auto" === g && (g = f.top + 1.5 * o.height() >= a(window).height() + a(window).scrollTop() && o.height() + c.outerHeight() < f.top ? "top" : "bottom"), -// Left and right logic - "auto" === h && (h = b.width() < f.left + o.outerWidth() / 2 && f.left + o.outerWidth() > a(window).width() ? "right" : "left"), "top" === g ? o.addClass("top").removeClass("bottom") : o.addClass("bottom").removeClass("top"), "right" === h ? o.addClass("pull-right") : o.removeClass("pull-right"), -// find the first parent element that has a relative css positioning - "relative" !== b.css("position") && (b = b.parents().filter(function () { - return"relative" === a(this).css("position") - }).first()), 0 === b.length)throw new Error("datetimepicker component should be placed within a relative positioned container"); - o.css({top: "top" === g ? "auto" : e.top + c.outerHeight(), bottom: "top" === g ? b.outerHeight() - (b === c ? 0 : e.top) : "auto", left: "left" === h ? b === c ? 0 : e.left : "auto", right: "left" === h ? "auto" : b.outerWidth() - c.outerWidth() - (b === c ? 0 : e.left)}) - }, J = function (a) { - "dp.change" === a.type && (a.date && a.date.isSame(a.oldDate) || !a.date && !a.oldDate) || c.trigger(a) - }, K = function (a) { - "y" === a && (a = "YYYY"), J({type: "dp.update", change: a, viewDate: f.clone()}) - }, L = function (a) { - o && (a && (k = Math.max(p, Math.min(3, k + a))), o.find(".datepicker > div").hide().filter(".datepicker-" + q[k].clsName).show()) - }, M = function () { - var b = a("
"), c = f.clone().startOf("w").startOf("d"); - for (d.calendarWeeks === !0 && b.append(a(""), d.calendarWeeks && c.append('"), k.push(c)), g = "", b.isBefore(f, "M") && (g += " old"), b.isAfter(f, "M") && (g += " new"), b.isSame(e, "d") && !m && (g += " active"), R(b, "d") || (g += " disabled"), b.isSame(y(), "d") && (g += " today"), 0 !== b.day() && 6 !== b.day() || (g += " weekend"), c.append('"), b.add(1, "d"); - i.find("tbody").empty().append(k), T(), U(), V() - } - }, X = function () { - var b = o.find(".timepicker-hours table"), c = f.clone().startOf("d"), d = [], e = a(""); - for (f.hour() > 11 && !h && c.hour(12); c.isSame(f, "d") && (h || f.hour() < 12 && c.hour() < 12 || f.hour() > 11);)c.hour() % 4 === 0 && (e = a(""), d.push(e)), e.append('"), c.add(1, "h"); - b.empty().append(d) - }, Y = function () { - for (var b = o.find(".timepicker-minutes table"), c = f.clone().startOf("h"), e = [], g = a(""), h = 1 === d.stepping ? 5 : d.stepping; f.isSame(c, "h");)c.minute() % (4 * h) === 0 && (g = a(""), e.push(g)), g.append('"), c.add(h, "m"); - b.empty().append(e) - }, Z = function () { - for (var b = o.find(".timepicker-seconds table"), c = f.clone().startOf("m"), d = [], e = a(""); f.isSame(c, "m");)c.second() % 20 === 0 && (e = a(""), d.push(e)), e.append('"), c.add(5, "s"); - b.empty().append(d) - }, $ = function () { - var a, b, c = o.find(".timepicker span[data-time-component]"); - h || (a = o.find(".timepicker [data-action=togglePeriod]"), b = e.clone().add(e.hours() >= 12 ? -12 : 12, "h"), a.text(e.format("A")), R(b, "h") ? a.removeClass("disabled") : a.addClass("disabled")), c.filter("[data-time-component=hours]").text(e.format(h ? "HH" : "hh")), c.filter("[data-time-component=minutes]").text(e.format("mm")), c.filter("[data-time-component=seconds]").text(e.format("ss")), X(), Y(), Z() - }, _ = function () { - o && (W(), $()) - }, aa = function (a) { - var b = m ? null : e; -// case of calling setValue(null or false) -// case of calling setValue(null or false) -//viewDate = date.clone(); // TODO this doesn't work right on first use - return a ? (a = a.clone().locale(d.locale), x() && a.tz(d.timeZone), 1 !== d.stepping && a.minutes(Math.round(a.minutes() / d.stepping) * d.stepping).seconds(0), void(R(a) ? (e = a, g.val(e.format(i)), c.data("date", e.format(i)), m = !1, _(), J({type: "dp.change", date: e.clone(), oldDate: b})) : (d.keepInvalid ? J({type: "dp.change", date: a, oldDate: b}) : g.val(m ? "" : e.format(i)), J({type: "dp.error", date: a, oldDate: b})))) : (m = !0, g.val(""), c.data("date", ""), J({type: "dp.change", date: !1, oldDate: b}), void _()) - }, /** - * Hides the widget. Possibly will emit dp.hide - */ - ba = function () { - var b = !1; -// Ignore event if in the middle of a picker transition - return o ? (o.find(".collapse").each(function () { - var c = a(this).data("collapse"); - return c && c.transitioning ? (b = !0, !1) : !0 - }), b ? l : (n && n.hasClass("btn") && n.toggleClass("active"), o.hide(), a(window).off("resize", I), o.off("click", "[data-action]"), o.off("mousedown", !1), o.remove(), o = !1, J({type: "dp.hide", date: e.clone()}), g.blur(), k = 0, f = e.clone(), l)) : l - }, ca = function () { - aa(null) - }, da = function (a) { -//inputDate.locale(options.locale); - return void 0 === d.parseInputDate ? b.isMoment(a) || (a = y(a)) : a = d.parseInputDate(a), a - }, /******************************************************************************** - * - * Widget UI interaction functions - * - ********************************************************************************/ - ea = {next: function () { - var a = q[k].navFnc; - f.add(q[k].navStep, a), W(), K(a) - }, previous: function () { - var a = q[k].navFnc; - f.subtract(q[k].navStep, a), W(), K(a) - }, pickerSwitch: function () { - L(1) - }, selectMonth: function (b) { - var c = a(b.target).closest("tbody").find("span").index(a(b.target)); - f.month(c), k === p ? (aa(e.clone().year(f.year()).month(f.month())), d.inline || ba()) : (L(-1), W()), K("M") - }, selectYear: function (b) { - var c = parseInt(a(b.target).text(), 10) || 0; - f.year(c), k === p ? (aa(e.clone().year(f.year())), d.inline || ba()) : (L(-1), W()), K("YYYY") - }, selectDecade: function (b) { - var c = parseInt(a(b.target).data("selection"), 10) || 0; - f.year(c), k === p ? (aa(e.clone().year(f.year())), d.inline || ba()) : (L(-1), W()), K("YYYY") - }, selectDay: function (b) { - var c = f.clone(); - a(b.target).is(".old") && c.subtract(1, "M"), a(b.target).is(".new") && c.add(1, "M"), aa(c.date(parseInt(a(b.target).text(), 10))), A() || d.keepOpen || d.inline || ba() - }, incrementHours: function () { - var a = e.clone().add(1, "h"); - R(a, "h") && aa(a) - }, incrementMinutes: function () { - var a = e.clone().add(d.stepping, "m"); - R(a, "m") && aa(a) - }, incrementSeconds: function () { - var a = e.clone().add(1, "s"); - R(a, "s") && aa(a) - }, decrementHours: function () { - var a = e.clone().subtract(1, "h"); - R(a, "h") && aa(a) - }, decrementMinutes: function () { - var a = e.clone().subtract(d.stepping, "m"); - R(a, "m") && aa(a) - }, decrementSeconds: function () { - var a = e.clone().subtract(1, "s"); - R(a, "s") && aa(a) - }, togglePeriod: function () { - aa(e.clone().add(e.hours() >= 12 ? -12 : 12, "h")) - }, togglePicker: function (b) { - var c, e = a(b.target), f = e.closest("ul"), g = f.find(".in"), h = f.find(".collapse:not(.in)"); - if (g && g.length) { - if (c = g.data("collapse"), c && c.transitioning)return; - g.collapse ? (// if collapse plugin is available through bootstrap.js then use it - g.collapse("hide"), h.collapse("show")) : (// otherwise just toggle in class on the two views - g.removeClass("in"), h.addClass("in")), e.is("span") ? e.toggleClass(d.icons.time + " " + d.icons.date) : e.find("span").toggleClass(d.icons.time + " " + d.icons.date) - } - }, showPicker: function () { - o.find(".timepicker > div:not(.timepicker-picker)").hide(), o.find(".timepicker .timepicker-picker").show() - }, showHours: function () { - o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-hours").show() - }, showMinutes: function () { - o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-minutes").show() - }, showSeconds: function () { - o.find(".timepicker .timepicker-picker").hide(), o.find(".timepicker .timepicker-seconds").show() - }, selectHour: function (b) { - var c = parseInt(a(b.target).text(), 10); - h || (e.hours() >= 12 ? 12 !== c && (c += 12) : 12 === c && (c = 0)), aa(e.clone().hours(c)), ea.showPicker.call(l) - }, selectMinute: function (b) { - aa(e.clone().minutes(parseInt(a(b.target).text(), 10))), ea.showPicker.call(l) - }, selectSecond: function (b) { - aa(e.clone().seconds(parseInt(a(b.target).text(), 10))), ea.showPicker.call(l) - }, clear: ca, today: function () { - var a = y(); - R(a, "d") && aa(a) - }, close: ba}, fa = function (b) { - return a(b.currentTarget).is(".disabled") ? !1 : (ea[a(b.currentTarget).data("action")].apply(l, arguments), !1) - }, /** - * Shows the widget. Possibly will emit dp.show and dp.change - */ - ga = function () { - var b, c = {year: function (a) { - return a.month(0).date(1).hours(0).seconds(0).minutes(0) - }, month: function (a) { - return a.date(1).hours(0).seconds(0).minutes(0) - }, day: function (a) { - return a.hours(0).seconds(0).minutes(0) - }, hour: function (a) { - return a.seconds(0).minutes(0) - }, minute: function (a) { - return a.seconds(0) - }};// this handles clicks on the widget - return g.prop("disabled") || !d.ignoreReadonly && g.prop("readonly") || o ? l : (void 0 !== g.val() && 0 !== g.val().trim().length ? aa(da(g.val().trim())) : m && d.useCurrent && (d.inline || g.is("input") && 0 === g.val().trim().length) && (b = y(), "string" == typeof d.useCurrent && (b = c[d.useCurrent](b)), aa(b)), o = G(), M(), S(), o.find(".timepicker-hours").hide(), o.find(".timepicker-minutes").hide(), o.find(".timepicker-seconds").hide(), _(), L(), a(window).on("resize", I), o.on("click", "[data-action]", fa), o.on("mousedown", !1), n && n.hasClass("btn") && n.toggleClass("active"), I(), o.show(), d.focusOnShow && !g.is(":focus") && g.focus(), J({type: "dp.show"}), l) - }, /** - * Shows or hides the widget - */ - ha = function () { - return o ? ba() : ga() - }, ia = function (a) { - var b, c, e, f, g = null, h = [], i = {}, j = a.which, k = "p"; - w[j] = k; - for (b in w)w.hasOwnProperty(b) && w[b] === k && (h.push(b), parseInt(b, 10) !== j && (i[b] = !0)); - for (b in d.keyBinds)if (d.keyBinds.hasOwnProperty(b) && "function" == typeof d.keyBinds[b] && (e = b.split(" "), e.length === h.length && v[j] === e[e.length - 1])) { - for (f = !0, c = e.length - 2; c >= 0; c--)if (!(v[e[c]]in i)) { - f = !1; - break - } - if (f) { - g = d.keyBinds[b]; - break - } - } - g && (g.call(l, o), a.stopPropagation(), a.preventDefault()) - }, ja = function (a) { - w[a.which] = "r", a.stopPropagation(), a.preventDefault() - }, ka = function (b) { - var c = a(b.target).val().trim(), d = c ? da(c) : null; - return aa(d), b.stopImmediatePropagation(), !1 - }, la = function () { - g.on({change: ka, blur: d.debug ? "" : ba, keydown: ia, keyup: ja, focus: d.allowInputToggle ? ga : ""}), c.is("input") ? g.on({focus: ga}) : n && (n.on("click", ha), n.on("mousedown", !1)) - }, ma = function () { - g.off({change: ka, blur: blur, keydown: ia, keyup: ja, focus: d.allowInputToggle ? ba : ""}), c.is("input") ? g.off({focus: ga}) : n && (n.off("click", ha), n.off("mousedown", !1)) - }, na = function (b) { -// Store given enabledDates and disabledDates as keys. -// This way we can check their existence in O(1) time instead of looping through whole array. -// (for example: options.enabledDates['2014-02-27'] === true) - var c = {}; - return a.each(b, function () { - var a = da(this); - a.isValid() && (c[a.format("YYYY-MM-DD")] = !0) - }), Object.keys(c).length ? c : !1 - }, oa = function (b) { -// Store given enabledHours and disabledHours as keys. -// This way we can check their existence in O(1) time instead of looping through whole array. -// (for example: options.enabledHours['2014-02-27'] === true) - var c = {}; - return a.each(b, function () { - c[this] = !0 - }), Object.keys(c).length ? c : !1 - }, pa = function () { - var a = d.format || "L LT"; - i = a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) { - var b = e.localeData().longDateFormat(a) || a; - return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) {//temp fix for #740 - return e.localeData().longDateFormat(a) || a - }) - }), j = d.extraFormats ? d.extraFormats.slice() : [], j.indexOf(a) < 0 && j.indexOf(i) < 0 && j.push(i), h = i.toLowerCase().indexOf("a") < 1 && i.replace(/\[.*?\]/g, "").indexOf("h") < 1, z("y") && (p = 2), z("M") && (p = 1), z("d") && (p = 0), k = Math.max(p, k), m || aa(e) - }; -// initializing element and component attributes - if (/******************************************************************************** - * - * Public API functions - * ===================== - * - * Important: Do not expose direct references to private objects or the options - * object to the outer world. Always return a clone when returning values or make - * a clone when setting a private variable. - * - ********************************************************************************/ - l.destroy = function () { -///Destroys the widget and removes all attached event listeners - ba(), ma(), c.removeData("DateTimePicker"), c.removeData("date") - }, l.toggle = ha, l.show = ga, l.hide = ba, l.disable = function () { -///Disables the input element, the component is attached to, by adding a disabled="true" attribute to it. -///If the widget was visible before that call it is hidden. Possibly emits dp.hide - return ba(), n && n.hasClass("btn") && n.addClass("disabled"), g.prop("disabled", !0), l - }, l.enable = function () { -///Enables the input element, the component is attached to, by removing disabled attribute from it. - return n && n.hasClass("btn") && n.removeClass("disabled"), g.prop("disabled", !1), l - }, l.ignoreReadonly = function (a) { - if (0 === arguments.length)return d.ignoreReadonly; - if ("boolean" != typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter"); - return d.ignoreReadonly = a, l - }, l.options = function (b) { - if (0 === arguments.length)return a.extend(!0, {}, d); - if (!(b instanceof Object))throw new TypeError("options() options parameter should be an object"); - return a.extend(!0, d, b), a.each(d, function (a, b) { - if (void 0 === l[a])throw new TypeError("option " + a + " is not recognized!"); - l[a](b) - }), l - }, l.date = function (a) { -/// -///Returns the component's model current date, a moment object or null if not set. -///date.clone() -/// -/// -///Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration. -///Takes string, Date, moment, null parameter. -/// - if (0 === arguments.length)return m ? null : e.clone(); - if (!(null === a || "string" == typeof a || b.isMoment(a) || a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]"); - return aa(null === a ? null : da(a)), l - }, l.format = function (a) { -///test su -///info about para -///returns foo - if (0 === arguments.length)return d.format; - if ("string" != typeof a && ("boolean" != typeof a || a !== !1))throw new TypeError("format() expects a string or boolean:false parameter " + a); - return d.format = a, i && pa(), l - }, l.timeZone = function (a) { - if (0 === arguments.length)return d.timeZone; - if ("string" != typeof a)throw new TypeError("newZone() expects a string parameter"); - return d.timeZone = a, l - }, l.dayViewHeaderFormat = function (a) { - if (0 === arguments.length)return d.dayViewHeaderFormat; - if ("string" != typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter"); - return d.dayViewHeaderFormat = a, l - }, l.extraFormats = function (a) { - if (0 === arguments.length)return d.extraFormats; - if (a !== !1 && !(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter"); - return d.extraFormats = a, j && pa(), l - }, l.disabledDates = function (b) { -/// -///Returns an array with the currently set disabled dates on the component. -///options.disabledDates -/// -/// -///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of -///options.enabledDates if such exist. -///Takes an [ string or Date or moment ] of values and allows the user to select only from those days. -/// - if (0 === arguments.length)return d.disabledDates ? a.extend({}, d.disabledDates) : d.disabledDates; - if (!b)return d.disabledDates = !1, _(), l; - if (!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter"); - return d.disabledDates = na(b), d.enabledDates = !1, _(), l - }, l.enabledDates = function (b) { -/// -///Returns an array with the currently set enabled dates on the component. -///options.enabledDates -/// -/// -///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist. -///Takes an [ string or Date or moment ] of values and allows the user to select only from those days. -/// - if (0 === arguments.length)return d.enabledDates ? a.extend({}, d.enabledDates) : d.enabledDates; - if (!b)return d.enabledDates = !1, _(), l; - if (!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter"); - return d.enabledDates = na(b), d.disabledDates = !1, _(), l - }, l.daysOfWeekDisabled = function (a) { - if (0 === arguments.length)return d.daysOfWeekDisabled.splice(0); - if ("boolean" == typeof a && !a)return d.daysOfWeekDisabled = !1, _(), l; - if (!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter"); - if (d.daysOfWeekDisabled = a.reduce(function (a, b) { - return b = parseInt(b, 10), b > 6 || 0 > b || isNaN(b) ? a : (-1 === a.indexOf(b) && a.push(b), a) - }, []).sort(), d.useCurrent && !d.keepInvalid) { - for (var b = 0; !R(e, "d");) { - if (e.add(1, "d"), 7 === b)throw"Tried 7 times to find a valid date"; - b++ - } - aa(e) - } - return _(), l - }, l.maxDate = function (a) { - if (0 === arguments.length)return d.maxDate ? d.maxDate.clone() : d.maxDate; - if ("boolean" == typeof a && a === !1)return d.maxDate = !1, _(), l; - "string" == typeof a && ("now" !== a && "moment" !== a || (a = y())); - var b = da(a); - if (!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: " + a); - if (d.minDate && b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: " + b.format(i)); - return d.maxDate = b, d.useCurrent && !d.keepInvalid && e.isAfter(a) && aa(d.maxDate), f.isAfter(b) && (f = b.clone().subtract(d.stepping, "m")), _(), l - }, l.minDate = function (a) { - if (0 === arguments.length)return d.minDate ? d.minDate.clone() : d.minDate; - if ("boolean" == typeof a && a === !1)return d.minDate = !1, _(), l; - "string" == typeof a && ("now" !== a && "moment" !== a || (a = y())); - var b = da(a); - if (!b.isValid())throw new TypeError("minDate() Could not parse date parameter: " + a); - if (d.maxDate && b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: " + b.format(i)); - return d.minDate = b, d.useCurrent && !d.keepInvalid && e.isBefore(a) && aa(d.minDate), f.isBefore(b) && (f = b.clone().add(d.stepping, "m")), _(), l - }, l.defaultDate = function (a) { -/// -///Returns a moment with the options.defaultDate option configuration or false if not set -///date.clone() -/// -/// -///Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared. -///Takes a string, Date, moment, boolean:false -/// - if (0 === arguments.length)return d.defaultDate ? d.defaultDate.clone() : d.defaultDate; - if (!a)return d.defaultDate = !1, l; - "string" == typeof a && (a = "now" === a || "moment" === a ? y() : y(a)); - var b = da(a); - if (!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: " + a); - if (!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations"); - return d.defaultDate = b, (d.defaultDate && d.inline || "" === g.val().trim()) && aa(d.defaultDate), l - }, l.locale = function (a) { - if (0 === arguments.length)return d.locale; - if (!b.localeData(a))throw new TypeError("locale() locale " + a + " is not loaded from moment locales!"); - return d.locale = a, e.locale(d.locale), f.locale(d.locale), i && pa(), o && (ba(), ga()), l - }, l.stepping = function (a) { - return 0 === arguments.length ? d.stepping : (a = parseInt(a, 10), (isNaN(a) || 1 > a) && (a = 1), d.stepping = a, l) - }, l.useCurrent = function (a) { - var b = ["year", "month", "day", "hour", "minute"]; - if (0 === arguments.length)return d.useCurrent; - if ("boolean" != typeof a && "string" != typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter"); - if ("string" == typeof a && -1 === b.indexOf(a.toLowerCase()))throw new TypeError("useCurrent() expects a string parameter of " + b.join(", ")); - return d.useCurrent = a, l - }, l.collapse = function (a) { - if (0 === arguments.length)return d.collapse; - if ("boolean" != typeof a)throw new TypeError("collapse() expects a boolean parameter"); - return d.collapse === a ? l : (d.collapse = a, o && (ba(), ga()), l) - }, l.icons = function (b) { - if (0 === arguments.length)return a.extend({}, d.icons); - if (!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object"); - return a.extend(d.icons, b), o && (ba(), ga()), l - }, l.tooltips = function (b) { - if (0 === arguments.length)return a.extend({}, d.tooltips); - if (!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object"); - return a.extend(d.tooltips, b), o && (ba(), ga()), l - }, l.useStrict = function (a) { - if (0 === arguments.length)return d.useStrict; - if ("boolean" != typeof a)throw new TypeError("useStrict() expects a boolean parameter"); - return d.useStrict = a, l - }, l.sideBySide = function (a) { - if (0 === arguments.length)return d.sideBySide; - if ("boolean" != typeof a)throw new TypeError("sideBySide() expects a boolean parameter"); - return d.sideBySide = a, o && (ba(), ga()), l - }, l.viewMode = function (a) { - if (0 === arguments.length)return d.viewMode; - if ("string" != typeof a)throw new TypeError("viewMode() expects a string parameter"); - if (-1 === r.indexOf(a))throw new TypeError("viewMode() parameter must be one of (" + r.join(", ") + ") value"); - return d.viewMode = a, k = Math.max(r.indexOf(a), p), L(), l - }, l.toolbarPlacement = function (a) { - if (0 === arguments.length)return d.toolbarPlacement; - if ("string" != typeof a)throw new TypeError("toolbarPlacement() expects a string parameter"); - if (-1 === u.indexOf(a))throw new TypeError("toolbarPlacement() parameter must be one of (" + u.join(", ") + ") value"); - return d.toolbarPlacement = a, o && (ba(), ga()), l - }, l.widgetPositioning = function (b) { - if (0 === arguments.length)return a.extend({}, d.widgetPositioning); - if ("[object Object]" !== {}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable"); - if (b.horizontal) { - if ("string" != typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string"); - if (b.horizontal = b.horizontal.toLowerCase(), -1 === t.indexOf(b.horizontal))throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + t.join(", ") + ")"); - d.widgetPositioning.horizontal = b.horizontal - } - if (b.vertical) { - if ("string" != typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string"); - if (b.vertical = b.vertical.toLowerCase(), -1 === s.indexOf(b.vertical))throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + s.join(", ") + ")"); - d.widgetPositioning.vertical = b.vertical - } - return _(), l - }, l.calendarWeeks = function (a) { - if (0 === arguments.length)return d.calendarWeeks; - if ("boolean" != typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value"); - return d.calendarWeeks = a, _(), l - }, l.showTodayButton = function (a) { - if (0 === arguments.length)return d.showTodayButton; - if ("boolean" != typeof a)throw new TypeError("showTodayButton() expects a boolean parameter"); - return d.showTodayButton = a, o && (ba(), ga()), l - }, l.showClear = function (a) { - if (0 === arguments.length)return d.showClear; - if ("boolean" != typeof a)throw new TypeError("showClear() expects a boolean parameter"); - return d.showClear = a, o && (ba(), ga()), l - }, l.widgetParent = function (b) { - if (0 === arguments.length)return d.widgetParent; - if ("string" == typeof b && (b = a(b)), null !== b && "string" != typeof b && !(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter"); - return d.widgetParent = b, o && (ba(), ga()), l - }, l.keepOpen = function (a) { - if (0 === arguments.length)return d.keepOpen; - if ("boolean" != typeof a)throw new TypeError("keepOpen() expects a boolean parameter"); - return d.keepOpen = a, l - }, l.focusOnShow = function (a) { - if (0 === arguments.length)return d.focusOnShow; - if ("boolean" != typeof a)throw new TypeError("focusOnShow() expects a boolean parameter"); - return d.focusOnShow = a, l - }, l.inline = function (a) { - if (0 === arguments.length)return d.inline; - if ("boolean" != typeof a)throw new TypeError("inline() expects a boolean parameter"); - return d.inline = a, l - }, l.clear = function () { - return ca(), l - }, l.keyBinds = function (a) { - return 0 === arguments.length ? d.keyBinds : (d.keyBinds = a, l) - }, l.getMoment = function (a) { - return y(a) - }, l.debug = function (a) { - if ("boolean" != typeof a)throw new TypeError("debug() expects a boolean parameter"); - return d.debug = a, l - }, l.allowInputToggle = function (a) { - if (0 === arguments.length)return d.allowInputToggle; - if ("boolean" != typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter"); - return d.allowInputToggle = a, l - }, l.showClose = function (a) { - if (0 === arguments.length)return d.showClose; - if ("boolean" != typeof a)throw new TypeError("showClose() expects a boolean parameter"); - return d.showClose = a, l - }, l.keepInvalid = function (a) { - if (0 === arguments.length)return d.keepInvalid; - if ("boolean" != typeof a)throw new TypeError("keepInvalid() expects a boolean parameter"); - return d.keepInvalid = a, l - }, l.datepickerInput = function (a) { - if (0 === arguments.length)return d.datepickerInput; - if ("string" != typeof a)throw new TypeError("datepickerInput() expects a string parameter"); - return d.datepickerInput = a, l - }, l.parseInputDate = function (a) { - if (0 === arguments.length)return d.parseInputDate; - if ("function" != typeof a)throw new TypeError("parseInputDate() sholud be as function"); - return d.parseInputDate = a, l - }, l.disabledTimeIntervals = function (b) { -/// -///Returns an array with the currently set disabled dates on the component. -///options.disabledTimeIntervals -/// -/// -///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of -///options.enabledDates if such exist. -///Takes an [ string or Date or moment ] of values and allows the user to select only from those days. -/// - if (0 === arguments.length)return d.disabledTimeIntervals ? a.extend({}, d.disabledTimeIntervals) : d.disabledTimeIntervals; - if (!b)return d.disabledTimeIntervals = !1, _(), l; - if (!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter"); - return d.disabledTimeIntervals = b, _(), l - }, l.disabledHours = function (b) { -/// -///Returns an array with the currently set disabled hours on the component. -///options.disabledHours -/// -/// -///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of -///options.enabledHours if such exist. -///Takes an [ int ] of values and disallows the user to select only from those hours. -/// - if (0 === arguments.length)return d.disabledHours ? a.extend({}, d.disabledHours) : d.disabledHours; - if (!b)return d.disabledHours = !1, _(), l; - if (!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter"); - if (d.disabledHours = oa(b), d.enabledHours = !1, d.useCurrent && !d.keepInvalid) { - for (var c = 0; !R(e, "h");) { - if (e.add(1, "h"), 24 === c)throw"Tried 24 times to find a valid date"; - c++ - } - aa(e) - } - return _(), l - }, l.enabledHours = function (b) { -/// -///Returns an array with the currently set enabled hours on the component. -///options.enabledHours -/// -/// -///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist. -///Takes an [ int ] of values and allows the user to select only from those hours. -/// - if (0 === arguments.length)return d.enabledHours ? a.extend({}, d.enabledHours) : d.enabledHours; - if (!b)return d.enabledHours = !1, _(), l; - if (!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter"); - if (d.enabledHours = oa(b), d.disabledHours = !1, d.useCurrent && !d.keepInvalid) { - for (var c = 0; !R(e, "h");) { - if (e.add(1, "h"), 24 === c)throw"Tried 24 times to find a valid date"; - c++ - } - aa(e) - } - return _(), l - }, /** - * Returns the component's model current viewDate, a moment object or null if not set. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration. - * @param {Takes string, viewDate, moment, null parameter.} newDate - * @returns {viewDate.clone()} - */ - l.viewDate = function (a) { - if (0 === arguments.length)return f.clone(); - if (!a)return f = e.clone(), l; - if (!("string" == typeof a || b.isMoment(a) || a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]"); - return f = da(a), K(), l - }, c.is("input"))g = c; else if (g = c.find(d.datepickerInput), 0 === g.length)g = c.find("input"); else if (!g.is("input"))throw new Error('CSS class "' + d.datepickerInput + '" cannot be applied to non input element'); - if (c.hasClass("input-group") && ( -// in case there is more then one 'input-group-addon' Issue #48 - n = 0 === c.find(".datepickerbutton").length ? c.find(".input-group-addon") : c.find(".datepickerbutton")), !d.inline && !g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element"); -// Set defaults for date here now instead of in var declaration - return e = y(), f = e.clone(), a.extend(!0, d, H()), l.options(d), pa(), la(), g.prop("disabled") && l.disable(), g.is("input") && 0 !== g.val().trim().length ? aa(da(g.val().trim())) : d.defaultDate && void 0 === g.attr("placeholder") && aa(d.defaultDate), d.inline && ga(), l - }; - /******************************************************************************** - * - * jQuery plugin constructor and defaults object - * - ********************************************************************************/ - /** - * See (http://jquery.com/). - * @name jQuery - * @class - * See the jQuery Library (http://jquery.com/) for full details. This just - * documents the function and classes that are added to jQuery by this plug-in. - */ - /** - * See (http://jquery.com/) - * @name fn - * @class - * See the jQuery Library (http://jquery.com/) for full details. This just - * documents the function and classes that are added to jQuery by this plug-in. - * @memberOf jQuery - */ - /** - * Show comments - * @class datetimepicker - * @memberOf jQuery.fn - */ - a.fn.datetimepicker = function (b) { - b = b || {}; - var d, e = Array.prototype.slice.call(arguments, 1), f = !0, g = ["destroy", "hide", "show", "toggle"]; - if ("object" == typeof b)return this.each(function () { - var d = a(this); - d.data("DateTimePicker") || (b = a.extend(!0, {}, a.fn.datetimepicker.defaults, b), d.data("DateTimePicker", c(d, b))) - }); - if ("string" == typeof b)return this.each(function () { - var c = a(this), g = c.data("DateTimePicker"); - if (!g)throw new Error('bootstrap-datetimepicker("' + b + '") method was called on an element that is not using DateTimePicker'); - d = g[b].apply(g, e), f = d === g - }), f || a.inArray(b, g) > -1 ? this : d; - throw new TypeError("Invalid arguments for DateTimePicker: " + b) - }, a.fn.datetimepicker.defaults = {timeZone: "", format: !1, dayViewHeaderFormat: "MMMM YYYY", extraFormats: !1, stepping: 1, minDate: !1, maxDate: !1, useCurrent: !0, collapse: !0, locale: b.locale(), defaultDate: !1, disabledDates: !1, enabledDates: !1, icons: {time: "glyphicon glyphicon-time", date: "glyphicon glyphicon-calendar", up: "glyphicon glyphicon-chevron-up", down: "glyphicon glyphicon-chevron-down", previous: "glyphicon glyphicon-chevron-left", next: "glyphicon glyphicon-chevron-right", today: "glyphicon glyphicon-screenshot", clear: "glyphicon glyphicon-trash", close: "glyphicon glyphicon-remove"}, tooltips: {today: "Go to today", clear: "Clear selection", close: "Close the picker", selectMonth: "Select Month", prevMonth: "Previous Month", nextMonth: "Next Month", selectYear: "Select Year", prevYear: "Previous Year", nextYear: "Next Year", selectDecade: "Select Decade", prevDecade: "Previous Decade", nextDecade: "Next Decade", prevCentury: "Previous Century", nextCentury: "Next Century", pickHour: "Pick Hour", incrementHour: "Increment Hour", decrementHour: "Decrement Hour", pickMinute: "Pick Minute", incrementMinute: "Increment Minute", decrementMinute: "Decrement Minute", pickSecond: "Pick Second", incrementSecond: "Increment Second", decrementSecond: "Decrement Second", togglePeriod: "Toggle Period", selectTime: "Select Time"}, useStrict: !1, sideBySide: !1, daysOfWeekDisabled: !1, calendarWeeks: !1, viewMode: "days", toolbarPlacement: "default", showTodayButton: !1, showClear: !1, showClose: !1, widgetPositioning: {horizontal: "auto", vertical: "auto"}, widgetParent: null, ignoreReadonly: !1, keepOpen: !1, focusOnShow: !0, inline: !1, keepInvalid: !1, datepickerInput: ".datepickerinput", keyBinds: {up: function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") ? this.date(b.clone().subtract(7, "d")) : this.date(b.clone().add(this.stepping(), "m")) - } - }, down: function (a) { - if (!a)return void this.show(); - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") ? this.date(b.clone().add(7, "d")) : this.date(b.clone().subtract(this.stepping(), "m")) - }, "control up": function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") ? this.date(b.clone().subtract(1, "y")) : this.date(b.clone().add(1, "h")) - } - }, "control down": function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") ? this.date(b.clone().add(1, "y")) : this.date(b.clone().subtract(1, "h")) - } - }, left: function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") && this.date(b.clone().subtract(1, "d")) - } - }, right: function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") && this.date(b.clone().add(1, "d")) - } - }, pageUp: function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") && this.date(b.clone().subtract(1, "M")) - } - }, pageDown: function (a) { - if (a) { - var b = this.date() || this.getMoment(); - a.find(".datepicker").is(":visible") && this.date(b.clone().add(1, "M")) - } - }, enter: function () { - this.hide() - }, escape: function () { - this.hide() - }, -//tab: function (widget) { //this break the flow of the form. disabling for now -// var toggle = widget.find('.picker-switch a[data-action="togglePicker"]'); -// if(toggle.length > 0) toggle.click(); -//}, - "control space": function (a) { - a.find(".timepicker").is(":visible") && a.find('.btn[data-action="togglePeriod"]').click() - }, t: function () { - this.date(this.getMoment()) - }, "delete": function () { - this.clear() - }}, debug: !1, allowInputToggle: !1, disabledTimeIntervals: !1, disabledHours: !1, enabledHours: !1, viewDate: !1}, "undefined" != typeof module && (module.exports = a.fn.datetimepicker) -}); \ No newline at end of file +!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)module.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t",delete:46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return i.indexOf("Y")!==-1;case"M":return i.indexOf("M")!==-1;case"d":return i.toLowerCase().indexOf("d")!==-1;case"h":case"H":return i.toLowerCase().indexOf("h")!==-1;case"m":return i.indexOf("m")!==-1;case"s":return i.indexOf("s")!==-1;default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("").append(a("").append(a("").append(a("").append(a("
").addClass("cw").text("#")); c.isBefore(f.clone().endOf("w"));)b.append(a("").addClass("dow").text(c.format("dd"))), c.add(1, "d"); - o.find(".datepicker-days thead").append(b) - }, N = function (a) { - return d.disabledDates[a.format("YYYY-MM-DD")] === !0 - }, O = function (a) { - return d.enabledDates[a.format("YYYY-MM-DD")] === !0 - }, P = function (a) { - return d.disabledHours[a.format("H")] === !0 - }, Q = function (a) { - return d.enabledHours[a.format("H")] === !0 - }, R = function (b, c) { - if (!b.isValid())return!1; - if (d.disabledDates && "d" === c && N(b))return!1; - if (d.enabledDates && "d" === c && !O(b))return!1; - if (d.minDate && b.isBefore(d.minDate, c))return!1; - if (d.maxDate && b.isAfter(d.maxDate, c))return!1; - if (d.daysOfWeekDisabled && "d" === c && -1 !== d.daysOfWeekDisabled.indexOf(b.day()))return!1; - if (d.disabledHours && ("h" === c || "m" === c || "s" === c) && P(b))return!1; - if (d.enabledHours && ("h" === c || "m" === c || "s" === c) && !Q(b))return!1; - if (d.disabledTimeIntervals && ("h" === c || "m" === c || "s" === c)) { - var e = !1; - if (a.each(d.disabledTimeIntervals, function () { - return b.isBetween(this[0], this[1]) ? (e = !0, !1) : void 0 - }), e)return!1 - } - return!0 - }, S = function () { - for (var b = [], c = f.clone().startOf("y").startOf("d"); c.isSame(f, "y");)b.push(a("").attr("data-action", "selectMonth").addClass("month").text(c.format("MMM"))), c.add(1, "M"); - o.find(".datepicker-months td").empty().append(b) - }, T = function () { - var b = o.find(".datepicker-months"), c = b.find("th"), g = b.find("tbody").find("span"); - c.eq(0).find("span").attr("title", d.tooltips.prevYear), c.eq(1).attr("title", d.tooltips.selectYear), c.eq(2).find("span").attr("title", d.tooltips.nextYear), b.find(".disabled").removeClass("disabled"), R(f.clone().subtract(1, "y"), "y") || c.eq(0).addClass("disabled"), c.eq(1).text(f.year()), R(f.clone().add(1, "y"), "y") || c.eq(2).addClass("disabled"), g.removeClass("active"), e.isSame(f, "y") && !m && g.eq(e.month()).addClass("active"), g.each(function (b) { - R(f.clone().month(b), "M") || a(this).addClass("disabled") - }) - }, U = function () { - var a = o.find(".datepicker-years"), b = a.find("th"), c = f.clone().subtract(5, "y"), g = f.clone().add(6, "y"), h = ""; - for (b.eq(0).find("span").attr("title", d.tooltips.prevDecade), b.eq(1).attr("title", d.tooltips.selectDecade), b.eq(2).find("span").attr("title", d.tooltips.nextDecade), a.find(".disabled").removeClass("disabled"), d.minDate && d.minDate.isAfter(c, "y") && b.eq(0).addClass("disabled"), b.eq(1).text(c.year() + "-" + g.year()), d.maxDate && d.maxDate.isBefore(g, "y") && b.eq(2).addClass("disabled"); !c.isAfter(g, "y");)h += '' + c.year() + "", c.add(1, "y"); - a.find("td").html(h) - }, V = function () { - var a, c = o.find(".datepicker-decades"), g = c.find("th"), h = b({y: f.year() - f.year() % 100 - 1}), i = h.clone().add(100, "y"), j = h.clone(), k = !1, l = !1, m = ""; - for (g.eq(0).find("span").attr("title", d.tooltips.prevCentury), g.eq(2).find("span").attr("title", d.tooltips.nextCentury), c.find(".disabled").removeClass("disabled"), (h.isSame(b({y: 1900})) || d.minDate && d.minDate.isAfter(h, "y")) && g.eq(0).addClass("disabled"), g.eq(1).text(h.year() + "-" + i.year()), (h.isSame(b({y: 2e3})) || d.maxDate && d.maxDate.isBefore(i, "y")) && g.eq(2).addClass("disabled"); !h.isAfter(i, "y");)a = h.year() + 12, k = d.minDate && d.minDate.isAfter(h, "y") && d.minDate.year() <= a, l = d.maxDate && d.maxDate.isAfter(h, "y") && d.maxDate.year() <= a, m += '' + (h.year() + 1) + " - " + (h.year() + 12) + "", h.add(12, "y"); - m += "", c.find("td").html(m), g.eq(1).text(j.year() + 1 + "-" + h.year()) - }, W = function () { - var b, c, g, h, i = o.find(".datepicker-days"), j = i.find("th"), k = []; - if (B()) { - for (j.eq(0).find("span").attr("title", d.tooltips.prevMonth), j.eq(1).attr("title", d.tooltips.selectMonth), j.eq(2).find("span").attr("title", d.tooltips.nextMonth), i.find(".disabled").removeClass("disabled"), j.eq(1).text(f.format(d.dayViewHeaderFormat)), R(f.clone().subtract(1, "M"), "M") || j.eq(0).addClass("disabled"), R(f.clone().add(1, "M"), "M") || j.eq(2).addClass("disabled"), b = f.clone().startOf("M").startOf("w").startOf("d"), h = 0; 42 > h; h++)//always display 42 days (should show 6 weeks) - 0 === b.weekday() && (c = a("
' + b.week() + "' + b.date() + "
' + c.format(h ? "HH" : "hh") + "
' + c.format("mm") + "
' + c.format("ss") + "
").addClass("prev").attr("data-action","previous").append(a("").addClass(d.icons.previous))).append(a("").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("").addClass("next").attr("data-action","next").append(a("").addClass(d.icons.next)))),c=a("
").attr("colspan",d.calendarWeeks?"8":"7")));return[a("
").addClass("datepicker-days").append(a("").addClass("table-condensed").append(b).append(a(""))),a("
").addClass("datepicker-months").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())),a("
").addClass("datepicker-years").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone())),a("
").addClass("datepicker-decades").append(a("
").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a(""),c=a(""),e=a("");return z("h")&&(b.append(a("
").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("").addClass(d.icons.up)))),c.append(a("").append(a("").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("").addClass("separator")),c.append(a("").addClass("separator").html(":")),e.append(a("").addClass("separator"))),b.append(a("").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("").addClass(d.icons.up)))),c.append(a("").append(a("").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("").addClass("separator")),c.append(a("").addClass("separator").html(":")),e.append(a("").addClass("separator"))),b.append(a("").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("").addClass(d.icons.up)))),c.append(a("").append(a("").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("").append(a("").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("").addClass(d.icons.down))))),h||(b.append(a("").addClass("separator")),c.append(a("").append(a("").addClass("separator"))),a("
").addClass("timepicker-picker").append(a("").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("
").addClass("timepicker-hours").append(a("
").addClass("table-condensed")),c=a("
").addClass("timepicker-minutes").append(a("
").addClass("table-condensed")),d=a("
").addClass("timepicker-seconds").append(a("
").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("
").append(a("").attr({"data-action":"today",title:d.tooltips.today}).append(a("").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("").append(a("").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("").addClass(d.icons.time)))),d.showClear&&b.push(a("").append(a("").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("").addClass(d.icons.clear)))),d.showClose&&b.push(a("").append(a("").attr({"data-action":"close",title:d.tooltips.close}).append(a("").addClass(d.icons.close)))),a("").addClass("table-condensed").append(a("").append(a("").append(b)))},G=function(){var b=a("
").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("
").addClass("datepicker").append(C()),e=a("
").addClass("timepicker").append(E()),f=a("
    ").addClass("list-unstyled"),g=a("
  • ").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("
    ").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("
  • ").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("
  • ").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"relative"!==b.css("position")&&(b=b.parents().filter(function(){return"relative"===a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a relative positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("
"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a(""),d.calendarWeeks&&c.append('"),k.push(c)),g="",b.isBefore(f,"M")&&(g+=" old"),b.isAfter(f,"M")&&(g+=" new"),b.isSame(e,"d")&&!m&&(g+=" active"),R(b,"d")||(g+=" disabled"),b.isSame(y(),"d")&&(g+=" today"),0!==b.day()&&6!==b.day()||(g+=" weekend"),c.append('"),b.add(1,"d");i.find("tbody").empty().append(k),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a(""),d.push(e)),e.append('"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a(""),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a(""),e.push(g)),g.append('"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("");f.isSame(c,"m");)c.second()%20===0&&(e=a(""),d.push(e)),e.append('"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;return a?(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping&&a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0),void(R(a)?(e=a,g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b})))):(m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _())},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return!c||!c.transitioning||(b=!0,!1)}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),k=0,f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?b.isMoment(a)||(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return!a(b.currentTarget).is(".disabled")&&(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),!!Object.keys(c).length&&c},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),!!Object.keys(c).length&&c},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||b<0||isNaN(b)?a:(a.indexOf(b)===-1&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||a<1)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&b.indexOf(a.toLowerCase())===-1)throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(r.indexOf(a)===-1)throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(u.indexOf(a)===-1)throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),t.indexOf(b.horizontal)===-1)throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),s.indexOf(b.vertical)===-1)throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};a.fn.datetimepicker=function(b){b=b||{};var d,e=Array.prototype.slice.call(arguments,1),f=!0,g=["destroy","hide","show","toggle"];if("object"==typeof b)return this.each(function(){var d=a(this);d.data("DateTimePicker")||(b=a.extend(!0,{},a.fn.datetimepicker.defaults,b),d.data("DateTimePicker",c(d,b)))});if("string"==typeof b)return this.each(function(){var c=a(this),g=c.data("DateTimePicker");if(!g)throw new Error('bootstrap-datetimepicker("'+b+'") method was called on an element that is not using DateTimePicker');d=g[b].apply(g,e),f=d===g}),f||a.inArray(b,g)>-1?this:d;throw new TypeError("Invalid arguments for DateTimePicker: "+b)},a.fn.datetimepicker.defaults={timeZone:"",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down",previous:"glyphicon glyphicon-chevron-left",next:"glyphicon glyphicon-chevron-right",today:"glyphicon glyphicon-screenshot",clear:"glyphicon glyphicon-trash",close:"glyphicon glyphicon-remove"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a&&a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},delete:function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1},"undefined"!=typeof module&&(module.exports=a.fn.datetimepicker)});
").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&d.daysOfWeekDisabled.indexOf(b.day())!==-1)return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){if(b.isBetween(this[0],this[1]))return e=!0,!1}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+=''+c.year()+"",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+=''+(h.year()+1)+" - "+(h.year()+12)+"",h.add(12,"y");m+="",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h,i=o.find(".datepicker-days"),j=i.find("th"),k=[];if(B()){for(j.eq(0).find("span").attr("title",d.tooltips.prevMonth),j.eq(1).attr("title",d.tooltips.selectMonth),j.eq(2).find("span").attr("title",d.tooltips.nextMonth),i.find(".disabled").removeClass("disabled"),j.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||j.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||j.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),h=0;h<42;h++)0===b.weekday()&&(c=a("
'+b.week()+"'+b.date()+"
'+c.format(h?"HH":"hh")+"
'+c.format("mm")+"
'+c.format("ss")+"