123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011 |
- /*! version : 4.17.47
- =========================================================
- 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 */
- /*
- Creative Tim Modifications
- We added class btn-primary for custom styling button.
- */
- ! function(e) {
- "use strict";
- if ("function" == typeof define && define.amd) define(["jquery", "moment"], e);
- else if ("object" == typeof exports) module.exports = e(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";
- e(jQuery, moment)
- }
- }(function(e, t) {
- "use strict";
- if (!t) throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");
- var n = function(n, a) {
- var r, i, o, s, d, l, p, c = {},
- u = !0,
- f = !1,
- h = !1,
- m = 0,
- y = [{
- clsName: "days",
- navFnc: "M",
- navStep: 1
- }, {
- clsName: "months",
- navFnc: "y",
- navStep: 1
- }, {
- clsName: "years",
- navFnc: "y",
- navStep: 10
- }, {
- clsName: "decades",
- navFnc: "y",
- navStep: 100
- }],
- b = ["days", "months", "years", "decades"],
- g = ["top", "bottom", "auto"],
- w = ["left", "right", "auto"],
- v = ["default", "top", "bottom"],
- k = {
- 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"
- },
- D = {},
- C = function() {
- return void 0 !== t.tz && void 0 !== a.timeZone && null !== a.timeZone && "" !== a.timeZone
- },
- x = function(e) {
- var n;
- return n = void 0 === e || null === e ? t() : t.isDate(e) || t.isMoment(e) ? t(e) : C() ? t.tz(e, l, a.useStrict, a.timeZone) : t(e, l, a.useStrict), C() && n.tz(a.timeZone), n
- },
- T = function(e) {
- if ("string" != typeof e || e.length > 1) throw new TypeError("isEnabled expects a single character string parameter");
- switch (e) {
- case "y":
- return -1 !== d.indexOf("Y");
- case "M":
- return -1 !== d.indexOf("M");
- case "d":
- return -1 !== d.toLowerCase().indexOf("d");
- case "h":
- case "H":
- return -1 !== d.toLowerCase().indexOf("h");
- case "m":
- return -1 !== d.indexOf("m");
- case "s":
- return -1 !== d.indexOf("s");
- default:
- return !1
- }
- },
- M = function() {
- return T("h") || T("m") || T("s")
- },
- S = function() {
- return T("y") || T("M") || T("d")
- },
- O = function() {
- var t = e("<thead>").append(e("<tr>").append(e("<th>").addClass("prev").attr("data-action", "previous").append(e("<span>").addClass(a.icons.previous))).append(e("<th>").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", a.calendarWeeks ? "6" : "5")).append(e("<th>").addClass("next").attr("data-action", "next").append(e("<span>").addClass(a.icons.next)))),
- n = e("<tbody>").append(e("<tr>").append(e("<td>").attr("colspan", a.calendarWeeks ? "8" : "7")));
- return [e("<div>").addClass("datepicker-days").append(e("<table>").addClass("table-condensed").append(t).append(e("<tbody>"))), e("<div>").addClass("datepicker-months").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone())), e("<div>").addClass("datepicker-years").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone())), e("<div>").addClass("datepicker-decades").append(e("<table>").addClass("table-condensed").append(t.clone()).append(n.clone()))]
- },
- P = function() {
- var t = e("<tr>"),
- n = e("<tr>"),
- r = e("<tr>");
- return T("h") && (t.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.incrementHour
- }).addClass("btn").attr("data-action", "incrementHours").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-hour").attr({
- "data-time-component": "hours",
- title: a.tooltips.pickHour
- }).attr("data-action", "showHours"))), r.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.decrementHour
- }).addClass("btn").attr("data-action", "decrementHours").append(e("<span>").addClass(a.icons.down))))), T("m") && (T("h") && (t.append(e("<td>").addClass("separator")), n.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.incrementMinute
- }).addClass("btn").attr("data-action", "incrementMinutes").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-minute").attr({
- "data-time-component": "minutes",
- title: a.tooltips.pickMinute
- }).attr("data-action", "showMinutes"))), r.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.decrementMinute
- }).addClass("btn").attr("data-action", "decrementMinutes").append(e("<span>").addClass(a.icons.down))))), T("s") && (T("m") && (t.append(e("<td>").addClass("separator")), n.append(e("<td>").addClass("separator").html(":")), r.append(e("<td>").addClass("separator"))), t.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.incrementSecond
- }).addClass("btn btn-link").attr("data-action", "incrementSeconds").append(e("<span>").addClass(a.icons.up)))), n.append(e("<td>").append(e("<span>").addClass("timepicker-second").attr({
- "data-time-component": "seconds",
- title: a.tooltips.pickSecond
- }).attr("data-action", "showSeconds"))), r.append(e("<td>").append(e("<a>").attr({
- href: "#",
- tabindex: "-1",
- title: a.tooltips.decrementSecond
- }).addClass("btn btn-link").attr("data-action", "decrementSeconds").append(e("<span>").addClass(a.icons.down))))), s || (t.append(e("<td>").addClass("separator")), n.append(e("<td>").append(e("<button>").addClass("btn btn-primary").attr({
- "data-action": "togglePeriod",
- tabindex: "-1",
- title: a.tooltips.togglePeriod
- }))), r.append(e("<td>").addClass("separator"))), e("<div>").addClass("timepicker-picker").append(e("<table>").addClass("table-condensed").append([t, n, r]))
- },
- E = function() {
- var t = e("<div>").addClass("timepicker-hours").append(e("<table>").addClass("table-condensed")),
- n = e("<div>").addClass("timepicker-minutes").append(e("<table>").addClass("table-condensed")),
- a = e("<div>").addClass("timepicker-seconds").append(e("<table>").addClass("table-condensed")),
- r = [P()];
- return T("h") && r.push(t), T("m") && r.push(n), T("s") && r.push(a), r
- },
- H = function() {
- var t = [];
- return a.showTodayButton && t.push(e("<td>").append(e("<a>").attr({
- "data-action": "today",
- title: a.tooltips.today
- }).append(e("<span>").addClass(a.icons.today)))), !a.sideBySide && S() && M() && t.push(e("<td>").append(e("<a>").attr({
- "data-action": "togglePicker",
- title: a.tooltips.selectTime
- }).append(e("<span>").addClass(a.icons.time)))), a.showClear && t.push(e("<td>").append(e("<a>").attr({
- "data-action": "clear",
- title: a.tooltips.clear
- }).append(e("<span>").addClass(a.icons.clear)))), a.showClose && t.push(e("<td>").append(e("<a>").attr({
- "data-action": "close",
- title: a.tooltips.close
- }).append(e("<span>").addClass(a.icons.close)))), e("<table>").addClass("table-condensed").append(e("<tbody>").append(e("<tr>").append(t)))
- },
- I = function() {
- var t = e("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),
- n = e("<div>").addClass("datepicker").append(O()),
- r = e("<div>").addClass("timepicker").append(E()),
- i = e("<ul>").addClass("list-unstyled"),
- o = e("<li>").addClass("picker-switch" + (a.collapse ? " accordion-toggle" : "")).append(H());
- return a.inline && t.removeClass("dropdown-menu"), s && t.addClass("usetwentyfour"), T("s") && !s && t.addClass("wider"), a.sideBySide && S() && M() ? (t.addClass("timepicker-sbs"), "top" === a.toolbarPlacement && t.append(o), t.append(e("<div>").addClass("row").append(n.addClass("col-md-6")).append(r.addClass("col-md-6"))), "bottom" === a.toolbarPlacement && t.append(o), t) : ("top" === a.toolbarPlacement && i.append(o), S() && i.append(e("<li>").addClass(a.collapse && M() ? "collapse show" : "").append(n)), "default" === a.toolbarPlacement && i.append(o), M() && i.append(e("<li>").addClass(a.collapse && S() ? "collapse" : "").append(r)), "bottom" === a.toolbarPlacement && i.append(o), t.append(i))
- },
- Y = function() {
- var t, r = (f || n).position(),
- i = (f || n).offset(),
- o = a.widgetPositioning.vertical,
- s = a.widgetPositioning.horizontal;
- if (a.widgetParent) t = a.widgetParent.append(h);
- else if (n.is("input")) t = n.after(h).parent();
- else {
- if (a.inline) return void(t = n.append(h));
- t = n, n.children().first().after(h)
- }
- if ("auto" === o && (o = i.top + 1.5 * h.height() >= e(window).height() + e(window).scrollTop() && h.height() + n.outerHeight() < i.top ? "top" : "bottom"), "auto" === s && (s = t.width() < i.left + h.outerWidth() / 2 && i.left + h.outerWidth() > e(window).width() ? "right" : "left"), "top" === o ? h.addClass("top").removeClass("bottom") : h.addClass("bottom").removeClass("top"), "right" === s ? h.addClass("pull-right") : h.removeClass("pull-right"), "static" === t.css("position") && (t = t.parents().filter(function() {
- return "static" !== e(this).css("position")
- }).first()), 0 === t.length) throw new Error("datetimepicker component should be placed within a non-static positioned container");
- h.css({
- top: "top" === o ? "auto" : r.top + n.outerHeight(),
- bottom: "top" === o ? t.outerHeight() - (t === n ? 0 : r.top) : "auto",
- left: "left" === s ? t === n ? 0 : r.left : "auto",
- right: "left" === s ? "auto" : t.outerWidth() - n.outerWidth() - (t === n ? 0 : r.left)
- }), setTimeout(function() {
- h.addClass("open")
- }, 180)
- },
- q = function(e) {
- "dp.change" === e.type && (e.date && e.date.isSame(e.oldDate) || !e.date && !e.oldDate) || n.trigger(e)
- },
- B = function(e) {
- "y" === e && (e = "YYYY"), q({
- type: "dp.update",
- change: e,
- viewDate: i.clone()
- })
- },
- j = function(e) {
- h && (e && (p = Math.max(m, Math.min(3, p + e))), h.find(".datepicker > div").hide().filter(".datepicker-" + y[p].clsName).show())
- },
- A = function() {
- var t = e("<tr>"),
- n = i.clone().startOf("w").startOf("d");
- for (!0 === a.calendarWeeks && t.append(e("<th>").addClass("cw").text("#")); n.isBefore(i.clone().endOf("w"));) t.append(e("<th>").addClass("dow").text(n.format("dd"))), n.add(1, "d");
- h.find(".datepicker-days thead").append(t)
- },
- F = function(e) {
- return !0 === a.disabledDates[e.format("YYYY-MM-DD")]
- },
- L = function(e) {
- return !0 === a.enabledDates[e.format("YYYY-MM-DD")]
- },
- W = function(e) {
- return !0 === a.disabledHours[e.format("H")]
- },
- z = function(e) {
- return !0 === a.enabledHours[e.format("H")]
- },
- N = function(t, n) {
- if (!t.isValid()) return !1;
- if (a.disabledDates && "d" === n && F(t)) return !1;
- if (a.enabledDates && "d" === n && !L(t)) return !1;
- if (a.minDate && t.isBefore(a.minDate, n)) return !1;
- if (a.maxDate && t.isAfter(a.maxDate, n)) return !1;
- if (a.daysOfWeekDisabled && "d" === n && -1 !== a.daysOfWeekDisabled.indexOf(t.day())) return !1;
- if (a.disabledHours && ("h" === n || "m" === n || "s" === n) && W(t)) return !1;
- if (a.enabledHours && ("h" === n || "m" === n || "s" === n) && !z(t)) return !1;
- if (a.disabledTimeIntervals && ("h" === n || "m" === n || "s" === n)) {
- var r = !1;
- if (e.each(a.disabledTimeIntervals, function() {
- if (t.isBetween(this[0], this[1])) return r = !0, !1
- }), r) return !1
- }
- return !0
- },
- V = function() {
- for (var t = [], n = i.clone().startOf("y").startOf("d"); n.isSame(i, "y");) t.push(e("<span>").attr("data-action", "selectMonth").addClass("month").text(n.format("MMM"))), n.add(1, "M");
- h.find(".datepicker-months td").empty().append(t)
- },
- Z = function() {
- var t = h.find(".datepicker-months"),
- n = t.find("th"),
- o = t.find("tbody").find("span");
- n.eq(0).find("span").attr("title", a.tooltips.prevYear), n.eq(1).attr("title", a.tooltips.selectYear), n.eq(2).find("span").attr("title", a.tooltips.nextYear), t.find(".disabled").removeClass("disabled"), N(i.clone().subtract(1, "y"), "y") || n.eq(0).addClass("disabled"), n.eq(1).text(i.year()), N(i.clone().add(1, "y"), "y") || n.eq(2).addClass("disabled"), o.removeClass("active"), r.isSame(i, "y") && !u && o.eq(r.month()).addClass("active"), o.each(function(t) {
- N(i.clone().month(t), "M") || e(this).addClass("disabled")
- })
- },
- R = function() {
- var e = h.find(".datepicker-years"),
- t = e.find("th"),
- n = i.clone().subtract(5, "y"),
- o = i.clone().add(6, "y"),
- s = "";
- for (t.eq(0).find("span").attr("title", a.tooltips.prevDecade), t.eq(1).attr("title", a.tooltips.selectDecade), t.eq(2).find("span").attr("title", a.tooltips.nextDecade), e.find(".disabled").removeClass("disabled"), a.minDate && a.minDate.isAfter(n, "y") && t.eq(0).addClass("disabled"), t.eq(1).text(n.year() + "-" + o.year()), a.maxDate && a.maxDate.isBefore(o, "y") && t.eq(2).addClass("disabled"); !n.isAfter(o, "y");) s += '<span data-action="selectYear" class="year' + (n.isSame(r, "y") && !u ? " active" : "") + (N(n, "y") ? "" : " disabled") + '">' + n.year() + "</span>", n.add(1, "y");
- e.find("td").html(s)
- },
- Q = function() {
- var e, n = h.find(".datepicker-decades"),
- o = n.find("th"),
- s = t({
- y: i.year() - i.year() % 100 - 1
- }),
- d = s.clone().add(100, "y"),
- l = s.clone(),
- p = !1,
- c = !1,
- u = "";
- for (o.eq(0).find("span").attr("title", a.tooltips.prevCentury), o.eq(2).find("span").attr("title", a.tooltips.nextCentury), n.find(".disabled").removeClass("disabled"), (s.isSame(t({
- y: 1900
- })) || a.minDate && a.minDate.isAfter(s, "y")) && o.eq(0).addClass("disabled"), o.eq(1).text(s.year() + "-" + d.year()), (s.isSame(t({
- y: 2e3
- })) || a.maxDate && a.maxDate.isBefore(d, "y")) && o.eq(2).addClass("disabled"); !s.isAfter(d, "y");) e = s.year() + 12, p = a.minDate && a.minDate.isAfter(s, "y") && a.minDate.year() <= e, c = a.maxDate && a.maxDate.isAfter(s, "y") && a.maxDate.year() <= e, u += '<span data-action="selectDecade" class="decade' + (r.isAfter(s) && r.year() <= e ? " active" : "") + (N(s, "y") || p || c ? "" : " disabled") + '" data-selection="' + (s.year() + 6) + '">' + (s.year() + 1) + " - " + (s.year() + 12) + "</span>", s.add(12, "y");
- u += "<span></span><span></span><span></span>", n.find("td").html(u), o.eq(1).text(l.year() + 1 + "-" + s.year())
- },
- U = function() {
- var t, n, o, s = h.find(".datepicker-days"),
- d = s.find("th"),
- l = [],
- p = [];
- if (S()) {
- for (d.eq(0).find("span").attr("title", a.tooltips.prevMonth), d.eq(1).attr("title", a.tooltips.selectMonth), d.eq(2).find("span").attr("title", a.tooltips.nextMonth), s.find(".disabled").removeClass("disabled"), d.eq(1).text(i.format(a.dayViewHeaderFormat)), N(i.clone().subtract(1, "M"), "M") || d.eq(0).addClass("disabled"), N(i.clone().add(1, "M"), "M") || d.eq(2).addClass("disabled"), t = i.clone().startOf("M").startOf("w").startOf("d"), o = 0; o < 42; o++) 0 === t.weekday() && (n = e("<tr>"), a.calendarWeeks && n.append('<td class="cw">' + t.week() + "</td>"), l.push(n)), p = ["day"], t.isBefore(i, "M") && p.push("old"), t.isAfter(i, "M") && p.push("new"), t.isSame(r, "d") && !u && p.push("active"), N(t, "d") || p.push("disabled"), t.isSame(x(), "d") && p.push("today"), 0 !== t.day() && 6 !== t.day() || p.push("weekend"), q({
- type: "dp.classify",
- date: t,
- classNames: p
- }), n.append('<td data-action="selectDay" data-day="' + t.format("L") + '" class="' + p.join(" ") + '"><div>' + t.date() + "</div></td>"), t.add(1, "d");
- s.find("tbody").empty().append(l), Z(), R(), Q()
- }
- },
- G = function() {
- var t = h.find(".timepicker-hours table"),
- n = i.clone().startOf("d"),
- a = [],
- r = e("<tr>");
- for (i.hour() > 11 && !s && n.hour(12); n.isSame(i, "d") && (s || i.hour() < 12 && n.hour() < 12 || i.hour() > 11);) n.hour() % 4 == 0 && (r = e("<tr>"), a.push(r)), r.append('<td data-action="selectHour" class="hour' + (N(n, "h") ? "" : " disabled") + '"><div>' + n.format(s ? "HH" : "hh") + "</div></td>"), n.add(1, "h");
- t.empty().append(a)
- },
- J = function() {
- for (var t = h.find(".timepicker-minutes table"), n = i.clone().startOf("h"), r = [], o = e("<tr>"), s = 1 === a.stepping ? 5 : a.stepping; i.isSame(n, "h");) n.minute() % (4 * s) == 0 && (o = e("<tr>"), r.push(o)), o.append('<td data-action="selectMinute" class="minute' + (N(n, "m") ? "" : " disabled") + '"><div>' + n.format("mm") + "</div></td>"), n.add(s, "m");
- t.empty().append(r)
- },
- K = function() {
- for (var t = h.find(".timepicker-seconds table"), n = i.clone().startOf("m"), a = [], r = e("<tr>"); i.isSame(n, "m");) n.second() % 20 == 0 && (r = e("<tr>"), a.push(r)), r.append('<td data-action="selectSecond" class="second' + (N(n, "s") ? "" : " disabled") + '"><div>' + n.format("ss") + "</div></td>"), n.add(5, "s");
- t.empty().append(a)
- },
- X = function() {
- var e, t, n = h.find(".timepicker span[data-time-component]");
- s || (e = h.find(".timepicker [data-action=togglePeriod]"), t = r.clone().add(r.hours() >= 12 ? -12 : 12, "h"), e.text(r.format("A")), N(t, "h") ? e.removeClass("disabled") : e.addClass("disabled")), n.filter("[data-time-component=hours]").text(r.format(s ? "HH" : "hh")), n.filter("[data-time-component=minutes]").text(r.format("mm")), n.filter("[data-time-component=seconds]").text(r.format("ss")), G(), J(), K()
- },
- $ = function() {
- h && (U(), X())
- },
- _ = function(e) {
- var t = u ? null : r;
- if (!e) return u = !0, o.val(""), n.data("date", ""), q({
- type: "dp.change",
- date: !1,
- oldDate: t
- }), void $();
- if (e = e.clone().locale(a.locale), C() && e.tz(a.timeZone), 1 !== a.stepping)
- for (e.minutes(Math.round(e.minutes() / a.stepping) * a.stepping).seconds(0); a.minDate && e.isBefore(a.minDate);) e.add(a.stepping, "minutes");
- N(e) ? (i = (r = e).clone(), o.val(r.format(d)), n.data("date", r.format(d)), u = !1, $(), q({
- type: "dp.change",
- date: r.clone(),
- oldDate: t
- })) : (a.keepInvalid ? q({
- type: "dp.change",
- date: e,
- oldDate: t
- }) : o.val(u ? "" : r.format(d)), q({
- type: "dp.error",
- date: e,
- oldDate: t
- }))
- },
- ee = function() {
- var t = !1;
- return h ? (h.find(".collapse").each(function() {
- var n = e(this).data("collapse");
- return !n || !n.transitioning || (t = !0, !1)
- }), t ? c : (f && f.hasClass("btn") && f.toggleClass("active"), e(window).off("resize", Y), h.off("click", "[data-action]"), h.off("mousedown", !1), h.removeClass("open"), void setTimeout(function() {
- return h.remove(), h.hide(), h = !1, q({
- type: "dp.hide",
- date: r.clone()
- }), o.blur(), p = 0, i = r.clone(), c
- }, 400))) : c
- },
- te = function() {
- _(null)
- },
- ne = function(e) {
- return void 0 === a.parseInputDate ? (!t.isMoment(e) || e instanceof Date) && (e = x(e)) : e = a.parseInputDate(e), e
- },
- ae = {
- next: function() {
- var e = y[p].navFnc;
- i.add(y[p].navStep, e), U(), B(e)
- },
- previous: function() {
- var e = y[p].navFnc;
- i.subtract(y[p].navStep, e), U(), B(e)
- },
- pickerSwitch: function() {
- j(1)
- },
- selectMonth: function(t) {
- var n = e(t.target).closest("tbody").find("span").index(e(t.target));
- i.month(n), p === m ? (_(r.clone().year(i.year()).month(i.month())), a.inline || ee()) : (j(-1), U()), B("M")
- },
- selectYear: function(t) {
- var n = parseInt(e(t.target).text(), 10) || 0;
- i.year(n), p === m ? (_(r.clone().year(i.year())), a.inline || ee()) : (j(-1), U()), B("YYYY")
- },
- selectDecade: function(t) {
- var n = parseInt(e(t.target).data("selection"), 10) || 0;
- i.year(n), p === m ? (_(r.clone().year(i.year())), a.inline || ee()) : (j(-1), U()), B("YYYY")
- },
- selectDay: function(t) {
- var n = i.clone();
- e(t.target).is(".old") && n.subtract(1, "M"), e(t.target).is(".new") && n.add(1, "M"), _(n.date(parseInt(e(t.target).text(), 10))), M() || a.keepOpen || a.inline || ee()
- },
- incrementHours: function() {
- var e = r.clone().add(1, "h");
- N(e, "h") && _(e)
- },
- incrementMinutes: function() {
- var e = r.clone().add(a.stepping, "m");
- N(e, "m") && _(e)
- },
- incrementSeconds: function() {
- var e = r.clone().add(1, "s");
- N(e, "s") && _(e)
- },
- decrementHours: function() {
- var e = r.clone().subtract(1, "h");
- N(e, "h") && _(e)
- },
- decrementMinutes: function() {
- var e = r.clone().subtract(a.stepping, "m");
- N(e, "m") && _(e)
- },
- decrementSeconds: function() {
- var e = r.clone().subtract(1, "s");
- N(e, "s") && _(e)
- },
- togglePeriod: function() {
- _(r.clone().add(r.hours() >= 12 ? -12 : 12, "h"))
- },
- togglePicker: function(t) {
- var n, r = e(t.target),
- i = r.closest("ul"),
- o = i.find(".show"),
- s = i.find(".collapse:not(.show)");
- if (o && o.length) {
- if ((n = o.data("collapse")) && n.transitioning) return;
- o.collapse ? (o.collapse("hide"), s.collapse("show")) : (o.removeClass("show"), s.addClass("show")), r.is("span") ? r.toggleClass(a.icons.time + " " + a.icons.date) : r.find("span").toggleClass(a.icons.time + " " + a.icons.date)
- }
- },
- showPicker: function() {
- h.find(".timepicker > div:not(.timepicker-picker)").hide(), h.find(".timepicker .timepicker-picker").show()
- },
- showHours: function() {
- h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-hours").show()
- },
- showMinutes: function() {
- h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-minutes").show()
- },
- showSeconds: function() {
- h.find(".timepicker .timepicker-picker").hide(), h.find(".timepicker .timepicker-seconds").show()
- },
- selectHour: function(t) {
- var n = parseInt(e(t.target).text(), 10);
- s || (r.hours() >= 12 ? 12 !== n && (n += 12) : 12 === n && (n = 0)), _(r.clone().hours(n)), ae.showPicker.call(c)
- },
- selectMinute: function(t) {
- _(r.clone().minutes(parseInt(e(t.target).text(), 10))), ae.showPicker.call(c)
- },
- selectSecond: function(t) {
- _(r.clone().seconds(parseInt(e(t.target).text(), 10))), ae.showPicker.call(c)
- },
- clear: te,
- today: function() {
- var e = x();
- N(e, "d") && _(e)
- },
- close: ee
- },
- re = function(t) {
- return !e(t.currentTarget).is(".disabled") && (ae[e(t.currentTarget).data("action")].apply(c, arguments), !1)
- },
- ie = function() {
- var t, n = {
- year: function(e) {
- return e.month(0).date(1).hours(0).seconds(0).minutes(0)
- },
- month: function(e) {
- return e.date(1).hours(0).seconds(0).minutes(0)
- },
- day: function(e) {
- return e.hours(0).seconds(0).minutes(0)
- },
- hour: function(e) {
- return e.seconds(0).minutes(0)
- },
- minute: function(e) {
- return e.seconds(0)
- }
- };
- return o.prop("disabled") || !a.ignoreReadonly && o.prop("readonly") || h ? c : (void 0 !== o.val() && 0 !== o.val().trim().length ? _(ne(o.val().trim())) : u && a.useCurrent && (a.inline || o.is("input") && 0 === o.val().trim().length) && (t = x(), "string" == typeof a.useCurrent && (t = n[a.useCurrent](t)), _(t)), h = I(), A(), V(), h.find(".timepicker-hours").hide(), h.find(".timepicker-minutes").hide(), h.find(".timepicker-seconds").hide(), $(), j(), e(window).on("resize", Y), h.on("click", "[data-action]", re), h.on("mousedown", !1), f && f.hasClass("btn") && f.toggleClass("active"), Y(), h.show(), a.focusOnShow && !o.is(":focus") && o.focus(), q({
- type: "dp.show"
- }), c)
- },
- oe = function() {
- return h ? ee() : ie()
- },
- se = function(e) {
- var t, n, r, i, o = null,
- s = [],
- d = {},
- l = e.which;
- D[l] = "p";
- for (t in D) D.hasOwnProperty(t) && "p" === D[t] && (s.push(t), parseInt(t, 10) !== l && (d[t] = !0));
- for (t in a.keyBinds)
- if (a.keyBinds.hasOwnProperty(t) && "function" == typeof a.keyBinds[t] && (r = t.split(" ")).length === s.length && k[l] === r[r.length - 1]) {
- for (i = !0, n = r.length - 2; n >= 0; n--)
- if (!(k[r[n]] in d)) {
- i = !1;
- break
- }
- if (i) {
- o = a.keyBinds[t];
- break
- }
- }
- o && (o.call(c, h), e.stopPropagation(), e.preventDefault())
- },
- de = function(e) {
- D[e.which] = "r", e.stopPropagation(), e.preventDefault()
- },
- le = function(t) {
- var n = e(t.target).val().trim(),
- a = n ? ne(n) : null;
- return _(a), t.stopImmediatePropagation(), !1
- },
- pe = function() {
- o.off({
- change: le,
- blur: blur,
- keydown: se,
- keyup: de,
- focus: a.allowInputToggle ? ee : ""
- }), n.is("input") ? o.off({
- focus: ie
- }) : f && (f.off("click", oe), f.off("mousedown", !1))
- },
- ce = function(t) {
- var n = {};
- return e.each(t, function() {
- var e = ne(this);
- e.isValid() && (n[e.format("YYYY-MM-DD")] = !0)
- }), !!Object.keys(n).length && n
- },
- ue = function(t) {
- var n = {};
- return e.each(t, function() {
- n[this] = !0
- }), !!Object.keys(n).length && n
- },
- fe = function() {
- var e = a.format || "L LT";
- d = e.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(e) {
- return (r.localeData().longDateFormat(e) || e).replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function(e) {
- return r.localeData().longDateFormat(e) || e
- })
- }), (l = a.extraFormats ? a.extraFormats.slice() : []).indexOf(e) < 0 && l.indexOf(d) < 0 && l.push(d), s = d.toLowerCase().indexOf("a") < 1 && d.replace(/\[.*?\]/g, "").indexOf("h") < 1, T("y") && (m = 2), T("M") && (m = 1), T("d") && (m = 0), p = Math.max(m, p), u || _(r)
- };
- if (c.destroy = function() {
- ee(), pe(), n.removeData("DateTimePicker"), n.removeData("date")
- }, c.toggle = oe, c.show = ie, c.hide = ee, c.disable = function() {
- return ee(), f && f.hasClass("btn") && f.addClass("disabled"), o.prop("disabled", !0), c
- }, c.enable = function() {
- return f && f.hasClass("btn") && f.removeClass("disabled"), o.prop("disabled", !1), c
- }, c.ignoreReadonly = function(e) {
- if (0 === arguments.length) return a.ignoreReadonly;
- if ("boolean" != typeof e) throw new TypeError("ignoreReadonly () expects a boolean parameter");
- return a.ignoreReadonly = e, c
- }, c.options = function(t) {
- if (0 === arguments.length) return e.extend(!0, {}, a);
- if (!(t instanceof Object)) throw new TypeError("options() options parameter should be an object");
- return e.extend(!0, a, t), e.each(a, function(e, t) {
- if (void 0 === c[e]) throw new TypeError("option " + e + " is not recognized!");
- c[e](t)
- }), c
- }, c.date = function(e) {
- if (0 === arguments.length) return u ? null : r.clone();
- if (!(null === e || "string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("date() parameter must be one of [null, string, moment or Date]");
- return _(null === e ? null : ne(e)), c
- }, c.format = function(e) {
- if (0 === arguments.length) return a.format;
- if ("string" != typeof e && ("boolean" != typeof e || !1 !== e)) throw new TypeError("format() expects a string or boolean:false parameter " + e);
- return a.format = e, d && fe(), c
- }, c.timeZone = function(e) {
- if (0 === arguments.length) return a.timeZone;
- if ("string" != typeof e) throw new TypeError("newZone() expects a string parameter");
- return a.timeZone = e, c
- }, c.dayViewHeaderFormat = function(e) {
- if (0 === arguments.length) return a.dayViewHeaderFormat;
- if ("string" != typeof e) throw new TypeError("dayViewHeaderFormat() expects a string parameter");
- return a.dayViewHeaderFormat = e, c
- }, c.extraFormats = function(e) {
- if (0 === arguments.length) return a.extraFormats;
- if (!1 !== e && !(e instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter");
- return a.extraFormats = e, l && fe(), c
- }, c.disabledDates = function(t) {
- if (0 === arguments.length) return a.disabledDates ? e.extend({}, a.disabledDates) : a.disabledDates;
- if (!t) return a.disabledDates = !1, $(), c;
- if (!(t instanceof Array)) throw new TypeError("disabledDates() expects an array parameter");
- return a.disabledDates = ce(t), a.enabledDates = !1, $(), c
- }, c.enabledDates = function(t) {
- if (0 === arguments.length) return a.enabledDates ? e.extend({}, a.enabledDates) : a.enabledDates;
- if (!t) return a.enabledDates = !1, $(), c;
- if (!(t instanceof Array)) throw new TypeError("enabledDates() expects an array parameter");
- return a.enabledDates = ce(t), a.disabledDates = !1, $(), c
- }, c.daysOfWeekDisabled = function(e) {
- if (0 === arguments.length) return a.daysOfWeekDisabled.splice(0);
- if ("boolean" == typeof e && !e) return a.daysOfWeekDisabled = !1, $(), c;
- if (!(e instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter");
- if (a.daysOfWeekDisabled = e.reduce(function(e, t) {
- return (t = parseInt(t, 10)) > 6 || t < 0 || isNaN(t) ? e : (-1 === e.indexOf(t) && e.push(t), e)
- }, []).sort(), a.useCurrent && !a.keepInvalid) {
- for (var t = 0; !N(r, "d");) {
- if (r.add(1, "d"), 31 === t) throw "Tried 31 times to find a valid date";
- t++
- }
- _(r)
- }
- return $(), c
- }, c.maxDate = function(e) {
- if (0 === arguments.length) return a.maxDate ? a.maxDate.clone() : a.maxDate;
- if ("boolean" == typeof e && !1 === e) return a.maxDate = !1, $(), c;
- "string" == typeof e && ("now" !== e && "moment" !== e || (e = x()));
- var t = ne(e);
- if (!t.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + e);
- if (a.minDate && t.isBefore(a.minDate)) throw new TypeError("maxDate() date parameter is before options.minDate: " + t.format(d));
- return a.maxDate = t, a.useCurrent && !a.keepInvalid && r.isAfter(e) && _(a.maxDate), i.isAfter(t) && (i = t.clone().subtract(a.stepping, "m")), $(), c
- }, c.minDate = function(e) {
- if (0 === arguments.length) return a.minDate ? a.minDate.clone() : a.minDate;
- if ("boolean" == typeof e && !1 === e) return a.minDate = !1, $(), c;
- "string" == typeof e && ("now" !== e && "moment" !== e || (e = x()));
- var t = ne(e);
- if (!t.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + e);
- if (a.maxDate && t.isAfter(a.maxDate)) throw new TypeError("minDate() date parameter is after options.maxDate: " + t.format(d));
- return a.minDate = t, a.useCurrent && !a.keepInvalid && r.isBefore(e) && _(a.minDate), i.isBefore(t) && (i = t.clone().add(a.stepping, "m")), $(), c
- }, c.defaultDate = function(e) {
- if (0 === arguments.length) return a.defaultDate ? a.defaultDate.clone() : a.defaultDate;
- if (!e) return a.defaultDate = !1, c;
- "string" == typeof e && (e = "now" === e || "moment" === e ? x() : x(e));
- var t = ne(e);
- if (!t.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + e);
- if (!N(t)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations");
- return a.defaultDate = t, (a.defaultDate && a.inline || "" === o.val().trim()) && _(a.defaultDate), c
- }, c.locale = function(e) {
- if (0 === arguments.length) return a.locale;
- if (!t.localeData(e)) throw new TypeError("locale() locale " + e + " is not loaded from moment locales!");
- return a.locale = e, r.locale(a.locale), i.locale(a.locale), d && fe(), h && (ee(), ie()), c
- }, c.stepping = function(e) {
- return 0 === arguments.length ? a.stepping : (e = parseInt(e, 10), (isNaN(e) || e < 1) && (e = 1), a.stepping = e, c)
- }, c.useCurrent = function(e) {
- var t = ["year", "month", "day", "hour", "minute"];
- if (0 === arguments.length) return a.useCurrent;
- if ("boolean" != typeof e && "string" != typeof e) throw new TypeError("useCurrent() expects a boolean or string parameter");
- if ("string" == typeof e && -1 === t.indexOf(e.toLowerCase())) throw new TypeError("useCurrent() expects a string parameter of " + t.join(", "));
- return a.useCurrent = e, c
- }, c.collapse = function(e) {
- if (0 === arguments.length) return a.collapse;
- if ("boolean" != typeof e) throw new TypeError("collapse() expects a boolean parameter");
- return a.collapse === e ? c : (a.collapse = e, h && (ee(), ie()), c)
- }, c.icons = function(t) {
- if (0 === arguments.length) return e.extend({}, a.icons);
- if (!(t instanceof Object)) throw new TypeError("icons() expects parameter to be an Object");
- return e.extend(a.icons, t), h && (ee(), ie()), c
- }, c.tooltips = function(t) {
- if (0 === arguments.length) return e.extend({}, a.tooltips);
- if (!(t instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object");
- return e.extend(a.tooltips, t), h && (ee(), ie()), c
- }, c.useStrict = function(e) {
- if (0 === arguments.length) return a.useStrict;
- if ("boolean" != typeof e) throw new TypeError("useStrict() expects a boolean parameter");
- return a.useStrict = e, c
- }, c.sideBySide = function(e) {
- if (0 === arguments.length) return a.sideBySide;
- if ("boolean" != typeof e) throw new TypeError("sideBySide() expects a boolean parameter");
- return a.sideBySide = e, h && (ee(), ie()), c
- }, c.viewMode = function(e) {
- if (0 === arguments.length) return a.viewMode;
- if ("string" != typeof e) throw new TypeError("viewMode() expects a string parameter");
- if (-1 === b.indexOf(e)) throw new TypeError("viewMode() parameter must be one of (" + b.join(", ") + ") value");
- return a.viewMode = e, p = Math.max(b.indexOf(e), m), j(), c
- }, c.toolbarPlacement = function(e) {
- if (0 === arguments.length) return a.toolbarPlacement;
- if ("string" != typeof e) throw new TypeError("toolbarPlacement() expects a string parameter");
- if (-1 === v.indexOf(e)) throw new TypeError("toolbarPlacement() parameter must be one of (" + v.join(", ") + ") value");
- return a.toolbarPlacement = e, h && (ee(), ie()), c
- }, c.widgetPositioning = function(t) {
- if (0 === arguments.length) return e.extend({}, a.widgetPositioning);
- if ("[object Object]" !== {}.toString.call(t)) throw new TypeError("widgetPositioning() expects an object variable");
- if (t.horizontal) {
- if ("string" != typeof t.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string");
- if (t.horizontal = t.horizontal.toLowerCase(), -1 === w.indexOf(t.horizontal)) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + w.join(", ") + ")");
- a.widgetPositioning.horizontal = t.horizontal
- }
- if (t.vertical) {
- if ("string" != typeof t.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string");
- if (t.vertical = t.vertical.toLowerCase(), -1 === g.indexOf(t.vertical)) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + g.join(", ") + ")");
- a.widgetPositioning.vertical = t.vertical
- }
- return $(), c
- }, c.calendarWeeks = function(e) {
- if (0 === arguments.length) return a.calendarWeeks;
- if ("boolean" != typeof e) throw new TypeError("calendarWeeks() expects parameter to be a boolean value");
- return a.calendarWeeks = e, $(), c
- }, c.showTodayButton = function(e) {
- if (0 === arguments.length) return a.showTodayButton;
- if ("boolean" != typeof e) throw new TypeError("showTodayButton() expects a boolean parameter");
- return a.showTodayButton = e, h && (ee(), ie()), c
- }, c.showClear = function(e) {
- if (0 === arguments.length) return a.showClear;
- if ("boolean" != typeof e) throw new TypeError("showClear() expects a boolean parameter");
- return a.showClear = e, h && (ee(), ie()), c
- }, c.widgetParent = function(t) {
- if (0 === arguments.length) return a.widgetParent;
- if ("string" == typeof t && (t = e(t)), null !== t && "string" != typeof t && !(t instanceof e)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter");
- return a.widgetParent = t, h && (ee(), ie()), c
- }, c.keepOpen = function(e) {
- if (0 === arguments.length) return a.keepOpen;
- if ("boolean" != typeof e) throw new TypeError("keepOpen() expects a boolean parameter");
- return a.keepOpen = e, c
- }, c.focusOnShow = function(e) {
- if (0 === arguments.length) return a.focusOnShow;
- if ("boolean" != typeof e) throw new TypeError("focusOnShow() expects a boolean parameter");
- return a.focusOnShow = e, c
- }, c.inline = function(e) {
- if (0 === arguments.length) return a.inline;
- if ("boolean" != typeof e) throw new TypeError("inline() expects a boolean parameter");
- return a.inline = e, c
- }, c.clear = function() {
- return te(), c
- }, c.keyBinds = function(e) {
- return 0 === arguments.length ? a.keyBinds : (a.keyBinds = e, c)
- }, c.getMoment = function(e) {
- return x(e)
- }, c.debug = function(e) {
- if ("boolean" != typeof e) throw new TypeError("debug() expects a boolean parameter");
- return a.debug = e, c
- }, c.allowInputToggle = function(e) {
- if (0 === arguments.length) return a.allowInputToggle;
- if ("boolean" != typeof e) throw new TypeError("allowInputToggle() expects a boolean parameter");
- return a.allowInputToggle = e, c
- }, c.showClose = function(e) {
- if (0 === arguments.length) return a.showClose;
- if ("boolean" != typeof e) throw new TypeError("showClose() expects a boolean parameter");
- return a.showClose = e, c
- }, c.keepInvalid = function(e) {
- if (0 === arguments.length) return a.keepInvalid;
- if ("boolean" != typeof e) throw new TypeError("keepInvalid() expects a boolean parameter");
- return a.keepInvalid = e, c
- }, c.datepickerInput = function(e) {
- if (0 === arguments.length) return a.datepickerInput;
- if ("string" != typeof e) throw new TypeError("datepickerInput() expects a string parameter");
- return a.datepickerInput = e, c
- }, c.parseInputDate = function(e) {
- if (0 === arguments.length) return a.parseInputDate;
- if ("function" != typeof e) throw new TypeError("parseInputDate() sholud be as function");
- return a.parseInputDate = e, c
- }, c.disabledTimeIntervals = function(t) {
- if (0 === arguments.length) return a.disabledTimeIntervals ? e.extend({}, a.disabledTimeIntervals) : a.disabledTimeIntervals;
- if (!t) return a.disabledTimeIntervals = !1, $(), c;
- if (!(t instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter");
- return a.disabledTimeIntervals = t, $(), c
- }, c.disabledHours = function(t) {
- if (0 === arguments.length) return a.disabledHours ? e.extend({}, a.disabledHours) : a.disabledHours;
- if (!t) return a.disabledHours = !1, $(), c;
- if (!(t instanceof Array)) throw new TypeError("disabledHours() expects an array parameter");
- if (a.disabledHours = ue(t), a.enabledHours = !1, a.useCurrent && !a.keepInvalid) {
- for (var n = 0; !N(r, "h");) {
- if (r.add(1, "h"), 24 === n) throw "Tried 24 times to find a valid date";
- n++
- }
- _(r)
- }
- return $(), c
- }, c.enabledHours = function(t) {
- if (0 === arguments.length) return a.enabledHours ? e.extend({}, a.enabledHours) : a.enabledHours;
- if (!t) return a.enabledHours = !1, $(), c;
- if (!(t instanceof Array)) throw new TypeError("enabledHours() expects an array parameter");
- if (a.enabledHours = ue(t), a.disabledHours = !1, a.useCurrent && !a.keepInvalid) {
- for (var n = 0; !N(r, "h");) {
- if (r.add(1, "h"), 24 === n) throw "Tried 24 times to find a valid date";
- n++
- }
- _(r)
- }
- return $(), c
- }, c.viewDate = function(e) {
- if (0 === arguments.length) return i.clone();
- if (!e) return i = r.clone(), c;
- if (!("string" == typeof e || t.isMoment(e) || e instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");
- return i = ne(e), B(), c
- }, n.is("input")) o = n;
- else if (0 === (o = n.find(a.datepickerInput)).length) o = n.find("input");
- else if (!o.is("input")) throw new Error('CSS class "' + a.datepickerInput + '" cannot be applied to non input element');
- if (n.hasClass("input-group") && (f = 0 === n.find(".datepickerbutton").length ? n.find(".input-group-addon") : n.find(".datepickerbutton")), !a.inline && !o.is("input")) throw new Error("Could not initialize DateTimePicker without an input element");
- return r = x(), i = r.clone(), e.extend(!0, a, function() {
- var t, r = {};
- return (t = n.is("input") || a.inline ? n.data() : n.find("input").data()).dateOptions && t.dateOptions instanceof Object && (r = e.extend(!0, r, t.dateOptions)), e.each(a, function(e) {
- var n = "date" + e.charAt(0).toUpperCase() + e.slice(1);
- void 0 !== t[n] && (r[e] = t[n])
- }), r
- }()), c.options(a), fe(), o.on({
- change: le,
- blur: a.debug ? "" : ee,
- keydown: se,
- keyup: de,
- focus: a.allowInputToggle ? ie : ""
- }), n.is("input") ? o.on({
- focus: ie
- }) : f && (f.on("click", oe), f.on("mousedown", !1)), o.prop("disabled") && c.disable(), o.is("input") && 0 !== o.val().trim().length ? _(ne(o.val().trim())) : a.defaultDate && void 0 === o.attr("placeholder") && _(a.defaultDate), a.inline && ie(), c
- };
- return e.fn.datetimepicker = function(t) {
- t = t || {};
- var a, r = Array.prototype.slice.call(arguments, 1),
- i = !0,
- o = ["destroy", "hide", "show", "toggle"];
- if ("object" == typeof t) return this.each(function() {
- var a, r = e(this);
- r.data("DateTimePicker") || (a = e.extend(!0, {}, e.fn.datetimepicker.defaults, t), r.data("DateTimePicker", n(r, a)))
- });
- if ("string" == typeof t) return this.each(function() {
- var n = e(this).data("DateTimePicker");
- if (!n) throw new Error('bootstrap-datetimepicker("' + t + '") method was called on an element that is not using DateTimePicker');
- a = n[t].apply(n, r), i = a === n
- }), i || e.inArray(t, o) > -1 ? this : a;
- throw new TypeError("Invalid arguments for DateTimePicker: " + t)
- }, e.fn.datetimepicker.defaults = {
- timeZone: "",
- format: !1,
- dayViewHeaderFormat: "MMMM YYYY",
- extraFormats: !1,
- stepping: 1,
- minDate: !1,
- maxDate: !1,
- useCurrent: !0,
- collapse: !0,
- locale: t.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(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(7, "d")) : this.date(t.clone().add(this.stepping(), "m"))
- }
- },
- down: function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") ? this.date(t.clone().add(7, "d")) : this.date(t.clone().subtract(this.stepping(), "m"))
- } else this.show()
- },
- "control up": function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") ? this.date(t.clone().subtract(1, "y")) : this.date(t.clone().add(1, "h"))
- }
- },
- "control down": function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") ? this.date(t.clone().add(1, "y")) : this.date(t.clone().subtract(1, "h"))
- }
- },
- left: function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "d"))
- }
- },
- right: function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "d"))
- }
- },
- pageUp: function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") && this.date(t.clone().subtract(1, "M"))
- }
- },
- pageDown: function(e) {
- if (e) {
- var t = this.date() || this.getMoment();
- e.find(".datepicker").is(":visible") && this.date(t.clone().add(1, "M"))
- }
- },
- enter: function() {
- this.hide()
- },
- escape: function() {
- this.hide()
- },
- "control space": function(e) {
- e && e.find(".timepicker").is(":visible") && e.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
- }, e.fn.datetimepicker
- });
|