15 lines
60 KiB
JavaScript
15 lines
60 KiB
JavaScript
/*@preserve
|
|
* Tempus Dominus Bootstrap4 v5.0.0-alpha14 (https://tempusdominus.github.io/bootstrap-4/)
|
|
* Copyright 2016-2017 Jonathan Peterson
|
|
* Licensed under MIT (https://github.com/tempusdominus/bootstrap-3/blob/master/LICENSE)
|
|
*/
|
|
if ("undefined" == typeof jQuery) throw new Error("Tempus Dominus Bootstrap4's requires jQuery. jQuery must be included before Tempus Dominus Bootstrap4's JavaScript."); if (+function (a) { var b = a.fn.jquery.split(" ")[0].split("."); if (b[0] < 2 && b[1] < 9 || 1 === b[0] && 9 === b[1] && b[2] < 1 || b[0] >= 4) throw new Error("Tempus Dominus Bootstrap4's requires at least jQuery v1.9.1 but less than v4.0.0") }(jQuery), "undefined" == typeof moment) throw new Error("Tempus Dominus Bootstrap4's requires moment.js. Moment.js must be included before Tempus Dominus Bootstrap4's JavaScript."); var version = moment.version.split("."); if (version[0] <= 2 && version[1] < 17 || version[0] >= 3) throw new Error("Tempus Dominus Bootstrap4's requires at least moment.js v2.17.0 but less than v3.0.0"); +function () {
|
|
function a(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function b(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } function c(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } var d = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (a) { return typeof a } : function (a) { return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a }, e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = function (a, b) { var d = "datetimepicker", f = "5.0.0-alpha12", g = "" + d, h = "." + g, i = g + ".", j = ".data-api", k = { DATA_TOGGLE: '[data-toggle="' + g + '"]' }, l = { INPUT: d + "-input" }, m = { CHANGE: "change" + h, BLUR: "blur" + h, KEYUP: "keyup" + h, KEYDOWN: "keydown" + h, FOCUS: "focus" + h, CLICK_DATA_API: "click" + h + j, UPDATE: i + "update", ERROR: i + "error", HIDE: i + "hide", SHOW: i + "show" }, n = [{ CLASS_NAME: "days", NAV_FUNCTION: "M", NAV_STEP: 1 }, { CLASS_NAME: "months", NAV_FUNCTION: "y", NAV_STEP: 1 }, { CLASS_NAME: "years", NAV_FUNCTION: "y", NAV_STEP: 10 }, { CLASS_NAME: "decades", NAV_FUNCTION: "y", NAV_STEP: 100 }], o = { 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" }, p = ["times", "days", "months", "years", "decades"], q = {}, r = {}, s = 0, t = { 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: "fa fa-clock-o", date: "fa fa-calendar", up: "fa fa-arrow-up", down: "fa fa-arrow-down", previous: "fa fa-chevron-left", next: "fa fa-chevron-right", today: "fa fa-calendar-check-o", clear: "fa fa-delete", close: "fa fa-times" }, 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", selectDate: "Select Date" }, useStrict: !1, sideBySide: !1, daysOfWeekDisabled: !1, calendarWeeks: !1, viewMode: "days", toolbarPlacement: "default", buttons: { showToday: !1, showClear: !1, showClose: !1 }, widgetPositioning: { horizontal: "auto", vertical: "auto" }, widgetParent: null, ignoreReadonly: !1, keepOpen: !1, focusOnShow: !0, inline: !1, keepInvalid: !1, keyBinds: { up: function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") ? this.date(a.clone().subtract(7, "d")) : this.date(a.clone().add(this.stepping(), "m")), !0 }, down: function () { if (!this.widget) return this.show(), !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") ? this.date(a.clone().add(7, "d")) : this.date(a.clone().subtract(this.stepping(), "m")), !0 }, "control up": function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") ? this.date(a.clone().subtract(1, "y")) : this.date(a.clone().add(1, "h")), !0 }, "control down": function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") ? this.date(a.clone().add(1, "y")) : this.date(a.clone().subtract(1, "h")), !0 }, left: function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") && this.date(a.clone().subtract(1, "d")), !0 }, right: function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") && this.date(a.clone().add(1, "d")), !0 }, pageUp: function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") && this.date(a.clone().subtract(1, "M")), !0 }, pageDown: function () { if (!this.widget) return !1; var a = this._dates[0] || this.getMoment(); return this.widget.find(".datepicker").is(":visible") && this.date(a.clone().add(1, "M")), !0 }, enter: function () { return this.hide(), !0 }, escape: function () { return !!this.widget && (this.hide(), !0) }, "control space": function () { return !!this.widget && (this.widget.find(".timepicker").is(":visible") && this.widget.find('.btn[data-action="togglePeriod"]').click(), !0) }, t: function () { return this.date(this.getMoment()), !0 }, delete: function () { return !!this.widget && (this.clear(), !0) } }, debug: !1, allowInputToggle: !1, disabledTimeIntervals: !1, disabledHours: !1, enabledHours: !1, viewDate: !1, allowMultidate: !1, multidateSeparator: "," }, u = function () { function i(a, b) { c(this, i), this._options = this._getOptions(b), this._element = a, this._dates = [], this._datesFormatted = [], this._viewDate = null, this.unset = !0, this.component = !1, this.widget = !1, this.use24Hours = null, this.actualFormat = null, this.parseFormats = null, this.currentViewMode = null, this._int() } return i.prototype._int = function () { var b = this._element.data("target-input"); this._element.is("input") ? this.input = this._element : void 0 !== b && ("nearest" === b ? this.input = this._element.find("input") : this.input = a(b)), this._dates = [], this._dates[0] = this.getMoment(), this._viewDate = this.getMoment().clone(), a.extend(!0, this._options, this._dataToOptions()), this.options(this._options), this._initFormatting(), void 0 !== this.input && this.input.is("input") && 0 !== this.input.val().trim().length ? this._setValue(this._parseInputDate(this.input.val().trim()), 0) : this._options.defaultDate && void 0 !== this.input && void 0 === this.input.attr("placeholder") && this._setValue(this._options.defaultDate, 0), this._options.inline && this.show() }, i.prototype._update = function () { this.widget && (this._fillDate(), this._fillTime()) }, i.prototype._setValue = function (a, b) { var c = this.unset ? null : this._dates[b], d = ""; if (!a) return this._options.allowMultidate && 1 !== this._dates.length ? (d = this._element.data("date") + ",", d = d.replace(c.format(this.actualFormat) + ",", "").replace(",,", "").replace(/,\s*$/, ""), this._dates.splice(b, 1), this._datesFormatted.splice(b, 1)) : (this.unset = !0, this._dates = [], this._datesFormatted = []), void 0 !== this.input && (this.input.val(d), this.input.trigger("input")), this._element.data("date", d), this._notifyEvent({ type: i.Event.CHANGE, date: !1, oldDate: c }), void this._update(); if (a = a.clone().locale(this._options.locale), this._hasTimeZone() && a.tz(this._options.timeZone), 1 !== this._options.stepping && a.minutes(Math.round(a.minutes() / this._options.stepping) * this._options.stepping).seconds(0), this._isValid(a)) { if (this._dates[b] = a, this._datesFormatted[b] = a.format("YYYY-MM-DD"), this._viewDate = a.clone(), this._options.allowMultidate && this._dates.length > 1) { for (var e = 0; e < this._dates.length; e++)d += "" + this._dates[e].format(this.actualFormat) + this._options.multidateSeparator; d = d.replace(/,\s*$/, "") } else d = this._dates[b].format(this.actualFormat); void 0 !== this.input && (this.input.val(d), this.input.trigger("input")), this._element.data("date", d), this.unset = !1, this._update(), this._notifyEvent({ type: i.Event.CHANGE, date: this._dates[b].clone(), oldDate: c }) } else this._options.keepInvalid ? this._notifyEvent({ type: i.Event.CHANGE, date: a, oldDate: c }) : void 0 !== this.input && (this.input.val("" + (this.unset ? "" : this._dates[b].format(this.actualFormat))), this.input.trigger("input")), this._notifyEvent({ type: i.Event.ERROR, date: a, oldDate: c }) }, i.prototype._change = function (b) { var c = a(b.target).val().trim(), d = c ? this._parseInputDate(c) : null; return this._setValue(d), b.stopImmediatePropagation(), !1 }, i.prototype._getOptions = function (b) { return b = a.extend(!0, {}, t, b) }, i.prototype._hasTimeZone = function () { return void 0 !== b.tz && void 0 !== this._options.timeZone && null !== this._options.timeZone && "" !== this._options.timeZone }, i.prototype._isEnabled = function (a) { if ("string" != typeof a || a.length > 1) throw new TypeError("isEnabled expects a single character string parameter"); switch (a) { case "y": return this.actualFormat.indexOf("Y") !== -1; case "M": return this.actualFormat.indexOf("M") !== -1; case "d": return this.actualFormat.toLowerCase().indexOf("d") !== -1; case "h": case "H": return this.actualFormat.toLowerCase().indexOf("h") !== -1; case "m": return this.actualFormat.indexOf("m") !== -1; case "s": return this.actualFormat.indexOf("s") !== -1; default: return !1 } }, i.prototype._hasTime = function () { return this._isEnabled("h") || this._isEnabled("m") || this._isEnabled("s") }, i.prototype._hasDate = function () { return this._isEnabled("y") || this._isEnabled("M") || this._isEnabled("d") }, i.prototype._dataToOptions = function () { var b = this._element.data(), c = {}; return b.dateOptions && b.dateOptions instanceof Object && (c = a.extend(!0, c, b.dateOptions)), a.each(this._options, function (a) { var d = "date" + a.charAt(0).toUpperCase() + a.slice(1); void 0 !== b[d] ? c[a] = b[d] : delete c[a] }), c }, i.prototype._notifyEvent = function (a) { a.type === i.Event.CHANGE && a.date && a.date.isSame(a.oldDate) || !a.date && !a.oldDate || this._element.trigger(a) }, i.prototype._viewUpdate = function (a) { "y" === a && (a = "YYYY"), this._notifyEvent({ type: i.Event.UPDATE, change: a, viewDate: this._viewDate.clone() }) }, i.prototype._showMode = function (a) { this.widget && (a && (this.currentViewMode = Math.max(s, Math.min(3, this.currentViewMode + a))), this.widget.find(".datepicker > div").hide().filter(".datepicker-" + n[this.currentViewMode].CLASS_NAME).show()) }, i.prototype._isInDisabledDates = function (a) { return this._options.disabledDates[a.format("YYYY-MM-DD")] === !0 }, i.prototype._isInEnabledDates = function (a) { return this._options.enabledDates[a.format("YYYY-MM-DD")] === !0 }, i.prototype._isInDisabledHours = function (a) { return this._options.disabledHours[a.format("H")] === !0 }, i.prototype._isInEnabledHours = function (a) { return this._options.enabledHours[a.format("H")] === !0 }, i.prototype._isValid = function (b, c) { if (!b.isValid()) return !1; if (this._options.disabledDates && "d" === c && this._isInDisabledDates(b)) return !1; if (this._options.enabledDates && "d" === c && !this._isInEnabledDates(b)) return !1; if (this._options.minDate && b.isBefore(this._options.minDate, c)) return !1; if (this._options.maxDate && b.isAfter(this._options.maxDate, c)) return !1; if (this._options.daysOfWeekDisabled && "d" === c && this._options.daysOfWeekDisabled.indexOf(b.day()) !== -1) return !1; if (this._options.disabledHours && ("h" === c || "m" === c || "s" === c) && this._isInDisabledHours(b)) return !1; if (this._options.enabledHours && ("h" === c || "m" === c || "s" === c) && !this._isInEnabledHours(b)) return !1; if (this._options.disabledTimeIntervals && ("h" === c || "m" === c || "s" === c)) { var d = !1; if (a.each(this._options.disabledTimeIntervals, function () { if (b.isBetween(this[0], this[1])) return d = !0, !1 }), d) return !1 } return !0 }, i.prototype._parseInputDate = function (a) { return void 0 === this._options.parseInputDate ? b.isMoment(a) || (a = this.getMoment(a)) : a = this._options.parseInputDate(a), a }, i.prototype._keydown = function (a) { var b = null, c = void 0, d = void 0, e = void 0, f = void 0, g = [], h = {}, i = a.which, j = "p"; q[i] = j; for (c in q) q.hasOwnProperty(c) && q[c] === j && (g.push(c), parseInt(c, 10) !== i && (h[c] = !0)); for (c in this._options.keyBinds) if (this._options.keyBinds.hasOwnProperty(c) && "function" == typeof this._options.keyBinds[c] && (e = c.split(" "), e.length === g.length && o[i] === e[e.length - 1])) { for (f = !0, d = e.length - 2; d >= 0; d--)if (!(o[e[d]] in h)) { f = !1; break } if (f) { b = this._options.keyBinds[c]; break } } b && b.call(this.widget) && (a.stopPropagation(), a.preventDefault()) }, i.prototype._keyup = function (a) { q[a.which] = "r", r[a.which] && (r[a.which] = !1, a.stopPropagation(), a.preventDefault()) }, i.prototype._indexGivenDates = function (b) { var c = {}, d = this; return a.each(b, function () { var a = d._parseInputDate(this); a.isValid() && (c[a.format("YYYY-MM-DD")] = !0) }), !!Object.keys(c).length && c }, i.prototype._indexGivenHours = function (b) { var c = {}; return a.each(b, function () { c[this] = !0 }), !!Object.keys(c).length && c }, i.prototype._initFormatting = function () { var a = this._options.format || "L LT", b = this; this.actualFormat = a.replace(/(\[[^\[]*])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (a) { return b._dates[0].localeData().longDateFormat(a) || a }), this.parseFormats = this._options.extraFormats ? this._options.extraFormats.slice() : [], this.parseFormats.indexOf(a) < 0 && this.parseFormats.indexOf(this.actualFormat) < 0 && this.parseFormats.push(this.actualFormat), this.use24Hours = this.actualFormat.toLowerCase().indexOf("a") < 1 && this.actualFormat.replace(/\[.*?]/g, "").indexOf("h") < 1, this._isEnabled("y") && (s = 2), this._isEnabled("M") && (s = 1), this._isEnabled("d") && (s = 0), this.currentViewMode = Math.max(s, this.currentViewMode), this.unset || this._setValue(this._dates[0], 0) }, i.prototype._getLastPickedDate = function () { return this._dates[this._getLastPickedDateIndex()] }, i.prototype._getLastPickedDateIndex = function () { return this._dates.length - 1 }, i.prototype.getMoment = function (a) { var c = void 0; return c = void 0 === a || null === a ? b() : this._hasTimeZone() ? b.tz(a, this.parseFormats, this._options.useStrict, this._options.timeZone) : b(a, this.parseFormats, this._options.useStrict), this._hasTimeZone() && c.tz(this._options.timeZone), c }, i.prototype.toggle = function () { return this.widget ? this.hide() : this.show() }, i.prototype.ignoreReadonly = function (a) { if (0 === arguments.length) return this._options.ignoreReadonly; if ("boolean" != typeof a) throw new TypeError("ignoreReadonly () expects a boolean parameter"); this._options.ignoreReadonly = a }, i.prototype.options = function (b) { if (0 === arguments.length) return a.extend(!0, {}, this._options); if (!(b instanceof Object)) throw new TypeError("options() this.options parameter should be an object"); a.extend(!0, this._options, b); var c = this; a.each(this._options, function (a, b) { void 0 !== c[a] && c[a](b) }) }, i.prototype.date = function (a, c) { if (c = c || 0, 0 === arguments.length) return this.unset ? null : this._options.allowMultidate ? this._dates.join(this._options.multidateSeparator) : this._dates[c].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]"); this._setValue(null === a ? null : this._parseInputDate(a), c) }, i.prototype.format = function (a) { if (0 === arguments.length) return this._options.format; if ("string" != typeof a && ("boolean" != typeof a || a !== !1)) throw new TypeError("format() expects a string or boolean:false parameter " + a); this._options.format = a, this.actualFormat && this._initFormatting() }, i.prototype.timeZone = function (a) { if (0 === arguments.length) return this._options.timeZone; if ("string" != typeof a) throw new TypeError("newZone() expects a string parameter"); this._options.timeZone = a }, i.prototype.dayViewHeaderFormat = function (a) { if (0 === arguments.length) return this._options.dayViewHeaderFormat; if ("string" != typeof a) throw new TypeError("dayViewHeaderFormat() expects a string parameter"); this._options.dayViewHeaderFormat = a }, i.prototype.extraFormats = function (a) { if (0 === arguments.length) return this._options.extraFormats; if (a !== !1 && !(a instanceof Array)) throw new TypeError("extraFormats() expects an array or false parameter"); this._options.extraFormats = a, this.parseFormats && this._initFormatting() }, i.prototype.disabledDates = function (b) { if (0 === arguments.length) return this._options.disabledDates ? a.extend({}, this._options.disabledDates) : this._options.disabledDates; if (!b) return this._options.disabledDates = !1, this._update(), !0; if (!(b instanceof Array)) throw new TypeError("disabledDates() expects an array parameter"); this._options.disabledDates = this._indexGivenDates(b), this._options.enabledDates = !1, this._update() }, i.prototype.enabledDates = function (b) { if (0 === arguments.length) return this._options.enabledDates ? a.extend({}, this._options.enabledDates) : this._options.enabledDates; if (!b) return this._options.enabledDates = !1, this._update(), !0; if (!(b instanceof Array)) throw new TypeError("enabledDates() expects an array parameter"); this._options.enabledDates = this._indexGivenDates(b), this._options.disabledDates = !1, this._update() }, i.prototype.daysOfWeekDisabled = function (a) { if (0 === arguments.length) return this._options.daysOfWeekDisabled.splice(0); if ("boolean" == typeof a && !a) return this._options.daysOfWeekDisabled = !1, this._update(), !0; if (!(a instanceof Array)) throw new TypeError("daysOfWeekDisabled() expects an array parameter"); if (this._options.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(), this._options.useCurrent && !this._options.keepInvalid) for (var b = 0; b < this._dates.length; b++) { for (var c = 0; !this._isValid(this._dates[b], "d");) { if (this._dates[b].add(1, "d"), 31 === c) throw "Tried 31 times to find a valid date"; c++ } this._setValue(this._dates[b], b) } this._update() }, i.prototype.maxDate = function (a) { if (0 === arguments.length) return this._options.maxDate ? this._options.maxDate.clone() : this._options.maxDate; if ("boolean" == typeof a && a === !1) return this._options.maxDate = !1, this._update(), !0; "string" == typeof a && ("now" !== a && "moment" !== a || (a = this.getMoment())); var b = this._parseInputDate(a); if (!b.isValid()) throw new TypeError("maxDate() Could not parse date parameter: " + a); if (this._options.minDate && b.isBefore(this._options.minDate)) throw new TypeError("maxDate() date parameter is before this.options.minDate: " + b.format(this.actualFormat)); this._options.maxDate = b; for (var c = 0; c < this._dates.length; c++)this._options.useCurrent && !this._options.keepInvalid && this._dates[c].isAfter(a) && this._setValue(this._options.maxDate, c); this._viewDate.isAfter(b) && (this._viewDate = b.clone().subtract(this._options.stepping, "m")), this._update() }, i.prototype.minDate = function (a) { if (0 === arguments.length) return this._options.minDate ? this._options.minDate.clone() : this._options.minDate; if ("boolean" == typeof a && a === !1) return this._options.minDate = !1, this._update(), !0; "string" == typeof a && ("now" !== a && "moment" !== a || (a = this.getMoment())); var b = this._parseInputDate(a); if (!b.isValid()) throw new TypeError("minDate() Could not parse date parameter: " + a); if (this._options.maxDate && b.isAfter(this._options.maxDate)) throw new TypeError("minDate() date parameter is after this.options.maxDate: " + b.format(this.actualFormat)); this._options.minDate = b; for (var c = 0; c < this._dates.length; c++)this._options.useCurrent && !this._options.keepInvalid && this._dates[c].isBefore(a) && this._setValue(this._options.minDate, c); this._viewDate.isBefore(b) && (this._viewDate = b.clone().add(this._options.stepping, "m")), this._update() }, i.prototype.defaultDate = function (a) { if (0 === arguments.length) return this._options.defaultDate ? this._options.defaultDate.clone() : this._options.defaultDate; if (!a) return this._options.defaultDate = !1, !0; "string" == typeof a && (a = "now" === a || "moment" === a ? this.getMoment() : this.getMoment(a)); var b = this._parseInputDate(a); if (!b.isValid()) throw new TypeError("defaultDate() Could not parse date parameter: " + a); if (!this._isValid(b)) throw new TypeError("defaultDate() date passed is invalid according to component setup validations"); this._options.defaultDate = b, (this._options.defaultDate && this._options.inline || void 0 !== this.input && "" === this.input.val().trim()) && this._setValue(this._options.defaultDate, 0) }, i.prototype.locale = function (a) { if (0 === arguments.length) return this._options.locale; if (!b.localeData(a)) throw new TypeError("locale() locale " + a + " is not loaded from moment locales!"); for (var c = 0; c < this._dates.length; c++)this._dates[c].locale(this._options.locale); this._viewDate.locale(this._options.locale), this.actualFormat && this._initFormatting(), this.widget && (this.hide(), this.show()) }, i.prototype.stepping = function (a) { return 0 === arguments.length ? this._options.stepping : (a = parseInt(a, 10), (isNaN(a) || a < 1) && (a = 1), void (this._options.stepping = a)) }, i.prototype.useCurrent = function (a) { var b = ["year", "month", "day", "hour", "minute"]; if (0 === arguments.length) return this._options.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(", ")); this._options.useCurrent = a }, i.prototype.collapse = function (a) { if (0 === arguments.length) return this._options.collapse; if ("boolean" != typeof a) throw new TypeError("collapse() expects a boolean parameter"); return this._options.collapse === a || (this._options.collapse = a, void (this.widget && (this.hide(), this.show()))) }, i.prototype.icons = function (b) { if (0 === arguments.length) return a.extend({}, this._options.icons); if (!(b instanceof Object)) throw new TypeError("icons() expects parameter to be an Object"); a.extend(this._options.icons, b), this.widget && (this.hide(), this.show()) }, i.prototype.tooltips = function (b) { if (0 === arguments.length) return a.extend({}, this._options.tooltips); if (!(b instanceof Object)) throw new TypeError("tooltips() expects parameter to be an Object"); a.extend(this._options.tooltips, b), this.widget && (this.hide(), this.show()) }, i.prototype.useStrict = function (a) { if (0 === arguments.length) return this._options.useStrict; if ("boolean" != typeof a) throw new TypeError("useStrict() expects a boolean parameter"); this._options.useStrict = a }, i.prototype.sideBySide = function (a) { if (0 === arguments.length) return this._options.sideBySide; if ("boolean" != typeof a) throw new TypeError("sideBySide() expects a boolean parameter"); this._options.sideBySide = a, this.widget && (this.hide(), this.show()) }, i.prototype.viewMode = function (a) { if (0 === arguments.length) return this._options.viewMode; if ("string" != typeof a) throw new TypeError("viewMode() expects a string parameter"); if (i.ViewModes.indexOf(a) === -1) throw new TypeError("viewMode() parameter must be one of (" + i.ViewModes.join(", ") + ") value"); this._options.viewMode = a, this.currentViewMode = Math.max(i.ViewModes.indexOf(a) - 1, i.MinViewModeNumber), this._showMode() }, i.prototype.calendarWeeks = function (a) { if (0 === arguments.length) return this._options.calendarWeeks; if ("boolean" != typeof a) throw new TypeError("calendarWeeks() expects parameter to be a boolean value"); this._options.calendarWeeks = a, this._update() }, i.prototype.buttons = function (b) { if (0 === arguments.length) return a.extend({}, this._options.buttons); if (!(b instanceof Object)) throw new TypeError("buttons() expects parameter to be an Object"); if (a.extend(this._options.buttons, b), "boolean" != typeof this._options.buttons.showToday) throw new TypeError("buttons.showToday expects a boolean parameter"); if ("boolean" != typeof this._options.buttons.showClear) throw new TypeError("buttons.showClear expects a boolean parameter"); if ("boolean" != typeof this._options.buttons.showClose) throw new TypeError("buttons.showClose expects a boolean parameter"); this.widget && (this.hide(), this.show()) }, i.prototype.keepOpen = function (a) { if (0 === arguments.length) return this._options.keepOpen; if ("boolean" != typeof a) throw new TypeError("keepOpen() expects a boolean parameter"); this._options.keepOpen = a }, i.prototype.focusOnShow = function (a) { if (0 === arguments.length) return this._options.focusOnShow; if ("boolean" != typeof a) throw new TypeError("focusOnShow() expects a boolean parameter"); this._options.focusOnShow = a }, i.prototype.inline = function (a) { if (0 === arguments.length) return this._options.inline; if ("boolean" != typeof a) throw new TypeError("inline() expects a boolean parameter"); this._options.inline = a }, i.prototype.clear = function () { this._setValue(null) }, i.prototype.keyBinds = function (a) { return 0 === arguments.length ? this._options.keyBinds : void (this._options.keyBinds = a) }, i.prototype.debug = function (a) { if ("boolean" != typeof a) throw new TypeError("debug() expects a boolean parameter"); this._options.debug = a }, i.prototype.allowInputToggle = function (a) { if (0 === arguments.length) return this._options.allowInputToggle; if ("boolean" != typeof a) throw new TypeError("allowInputToggle() expects a boolean parameter"); this._options.allowInputToggle = a }, i.prototype.keepInvalid = function (a) { if (0 === arguments.length) return this._options.keepInvalid; if ("boolean" != typeof a) throw new TypeError("keepInvalid() expects a boolean parameter"); this._options.keepInvalid = a }, i.prototype.datepickerInput = function (a) { if (0 === arguments.length) return this._options.datepickerInput; if ("string" != typeof a) throw new TypeError("datepickerInput() expects a string parameter"); this._options.datepickerInput = a }, i.prototype.parseInputDate = function (a) { if (0 === arguments.length) return this._options.parseInputDate; if ("function" != typeof a) throw new TypeError("parseInputDate() should be as function"); this._options.parseInputDate = a }, i.prototype.disabledTimeIntervals = function (b) { if (0 === arguments.length) return this._options.disabledTimeIntervals ? a.extend({}, this._options.disabledTimeIntervals) : this._options.disabledTimeIntervals; if (!b) return this._options.disabledTimeIntervals = !1, this._update(), !0; if (!(b instanceof Array)) throw new TypeError("disabledTimeIntervals() expects an array parameter"); this._options.disabledTimeIntervals = b, this._update() }, i.prototype.disabledHours = function (b) { if (0 === arguments.length) return this._options.disabledHours ? a.extend({}, this._options.disabledHours) : this._options.disabledHours; if (!b) return this._options.disabledHours = !1, this._update(), !0; if (!(b instanceof Array)) throw new TypeError("disabledHours() expects an array parameter"); if (this._options.disabledHours = this._indexGivenHours(b), this._options.enabledHours = !1, this._options.useCurrent && !this._options.keepInvalid) for (var c = 0; c < this._dates.length; c++) { for (var d = 0; !this._isValid(this._dates[c], "h");) { if (this._dates[c].add(1, "h"), 24 === d) throw "Tried 24 times to find a valid date"; d++ } this._setValue(this._dates[c], c) } this._update() }, i.prototype.enabledHours = function (b) { if (0 === arguments.length) return this._options.enabledHours ? a.extend({}, this._options.enabledHours) : this._options.enabledHours; if (!b) return this._options.enabledHours = !1, this._update(), !0; if (!(b instanceof Array)) throw new TypeError("enabledHours() expects an array parameter"); if (this._options.enabledHours = this._indexGivenHours(b), this._options.disabledHours = !1, this._options.useCurrent && !this._options.keepInvalid) for (var c = 0; c < this._dates.length; c++) { for (var d = 0; !this._isValid(this._dates[c], "h");) { if (this._dates[c].add(1, "h"), 24 === d) throw "Tried 24 times to find a valid date"; d++ } this._setValue(this._dates[c], c) } this._update() }, i.prototype.viewDate = function (a) { if (0 === arguments.length) return this._viewDate.clone(); if (!a) return this._viewDate = (this._dates[0] || this.getMoment()).clone(), !0; if (!("string" == typeof a || b.isMoment(a) || a instanceof Date)) throw new TypeError("viewDate() parameter must be one of [string, moment or Date]"); this._viewDate = this._parseInputDate(a), this._viewUpdate() }, i.prototype.allowMultidate = function (a) { if ("boolean" != typeof a) throw new TypeError("allowMultidate() expects a boolean parameter"); this._options.allowMultidate = a }, i.prototype.multidateSeparator = function (a) { if (0 === arguments.length) return this._options.multidateSeparator; if ("string" != typeof a || a.length > 1) throw new TypeError("multidateSeparator expects a single character string parameter"); this._options.multidateSeparator = a }, e(i, null, [{ key: "NAME", get: function () { return d } }, { key: "VERSION", get: function () { return f } }, { key: "DATA_KEY", get: function () { return g } }, { key: "EVENT_KEY", get: function () { return h } }, { key: "DATA_API_KEY", get: function () { return j } }, { key: "DatePickerModes", get: function () { return n } }, { key: "ViewModes", get: function () { return p } }, { key: "MinViewModeNumber", get: function () { return s } }, { key: "Event", get: function () { return m } }, { key: "Selector", get: function () { return k } }, { key: "Default", get: function () { return t }, set: function (a) { t = a } }, { key: "ClassName", get: function () { return l } }]), i }(); return u }(jQuery, moment); (function (e) {
|
|
var g = e.fn[f.NAME], h = ["top", "bottom", "auto"], i = ["left", "right", "auto"], j = ["default", "top", "bottom"], k = function (a) { var b = a.data("target"), c = void 0; return b || (b = a.attr("href") || "", b = /^#[a-z]/i.test(b) ? b : null), c = e(b), 0 === c.length ? c : (c.data(f.DATA_KEY) || e.extend({}, c.data(), e(this).data()), c) }, l = function (g) {
|
|
function k(b, d) { c(this, k); var e = a(this, g.call(this, b, d)); return e._init(), e } return b(k, g), k.prototype._init = function () { if (this._element.hasClass("input-group")) { var a = this._element.find(".datepickerbutton"); 0 === a.length ? this.component = this._element.find(".input-group-append") : this.component = a } }, k.prototype._getDatePickerTemplate = function () { var a = e("<thead>").append(e("<tr>").append(e("<th>").addClass("prev").attr("data-action", "previous").append(e("<span>").addClass(this._options.icons.previous))).append(e("<th>").addClass("picker-switch").attr("data-action", "pickerSwitch").attr("colspan", "" + (this._options.calendarWeeks ? "6" : "5"))).append(e("<th>").addClass("next").attr("data-action", "next").append(e("<span>").addClass(this._options.icons.next)))), b = e("<tbody>").append(e("<tr>").append(e("<td>").attr("colspan", "" + (this._options.calendarWeeks ? "8" : "7")))); return [e("<div>").addClass("datepicker-days").append(e("<table>").addClass("table table-sm").append(a).append(e("<tbody>"))), e("<div>").addClass("datepicker-months").append(e("<table>").addClass("table-condensed").append(a.clone()).append(b.clone())), e("<div>").addClass("datepicker-years").append(e("<table>").addClass("table-condensed").append(a.clone()).append(b.clone())), e("<div>").addClass("datepicker-decades").append(e("<table>").addClass("table-condensed").append(a.clone()).append(b.clone()))] }, k.prototype._getTimePickerMainTemplate = function () {
|
|
var a = e("<tr>"), b = e("<tr>"), c = e("<tr>"); return this._isEnabled("h") && (a.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.incrementHour }).addClass("btn").attr("data-action", "incrementHours").append(e("<span>").addClass(this._options.icons.up)))), b.append(e("<td>").append(e("<span>").addClass("timepicker-hour").attr({ "data-time-component": "hours", title: this._options.tooltips.pickHour }).attr("data-action", "showHours"))), c.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.decrementHour }).addClass("btn").attr("data-action", "decrementHours").append(e("<span>").addClass(this._options.icons.down))))), this._isEnabled("m") && (this._isEnabled("h") && (a.append(e("<td>").addClass("separator")), b.append(e("<td>").addClass("separator").html(":")), c.append(e("<td>").addClass("separator"))), a.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.incrementMinute }).addClass("btn").attr("data-action", "incrementMinutes").append(e("<span>").addClass(this._options.icons.up)))), b.append(e("<td>").append(e("<span>").addClass("timepicker-minute").attr({ "data-time-component": "minutes", title: this._options.tooltips.pickMinute }).attr("data-action", "showMinutes"))), c.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.decrementMinute }).addClass("btn").attr("data-action", "decrementMinutes").append(e("<span>").addClass(this._options.icons.down))))), this._isEnabled("s") && (this._isEnabled("m") && (a.append(e("<td>").addClass("separator")),
|
|
b.append(e("<td>").addClass("separator").html(":")), c.append(e("<td>").addClass("separator"))), a.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.incrementSecond }).addClass("btn").attr("data-action", "incrementSeconds").append(e("<span>").addClass(this._options.icons.up)))), b.append(e("<td>").append(e("<span>").addClass("timepicker-second").attr({ "data-time-component": "seconds", title: this._options.tooltips.pickSecond }).attr("data-action", "showSeconds"))), c.append(e("<td>").append(e("<a>").attr({ href: "#", tabindex: "-1", title: this._options.tooltips.decrementSecond }).addClass("btn").attr("data-action", "decrementSeconds").append(e("<span>").addClass(this._options.icons.down))))), this.use24Hours || (a.append(e("<td>").addClass("separator")), b.append(e("<td>").append(e("<button>").addClass("btn btn-primary").attr({ "data-action": "togglePeriod", tabindex: "-1", title: this._options.tooltips.togglePeriod }))), c.append(e("<td>").addClass("separator"))), e("<div>").addClass("timepicker-picker").append(e("<table>").addClass("table-condensed").append([a, b, c]))
|
|
}, k.prototype._getTimePickerTemplate = function () { var a = e("<div>").addClass("timepicker-hours").append(e("<table>").addClass("table-condensed")), b = e("<div>").addClass("timepicker-minutes").append(e("<table>").addClass("table-condensed")), c = e("<div>").addClass("timepicker-seconds").append(e("<table>").addClass("table-condensed")), d = [this._getTimePickerMainTemplate()]; return this._isEnabled("h") && d.push(a), this._isEnabled("m") && d.push(b), this._isEnabled("s") && d.push(c), d }, k.prototype._getToolbar = function () { var a = []; return this._options.buttons.showToday && a.push(e("<td>").append(e("<a>").attr({ "data-action": "today", title: this._options.tooltips.today }).append(e("<span>").addClass(this._options.icons.today)))), !this._options.sideBySide && this._hasDate() && this._hasTime() && a.push(e("<td>").append(e("<a>").attr({ "data-action": "togglePicker", title: this._options.tooltips.selectTime }).append(e("<span>").addClass(this._options.icons.time)))), this._options.buttons.showClear && a.push(e("<td>").append(e("<a>").attr({ "data-action": "clear", title: this._options.tooltips.clear }).append(e("<span>").addClass(this._options.icons.clear)))), this._options.buttons.showClose && a.push(e("<td>").append(e("<a>").attr({ "data-action": "close", title: this._options.tooltips.close }).append(e("<span>").addClass(this._options.icons.close)))), 0 === a.length ? "" : e("<table>").addClass("table-condensed").append(e("<tbody>").append(e("<tr>").append(a))) }, k.prototype._getTemplate = function () { var a = e("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"), b = e("<div>").addClass("datepicker").append(this._getDatePickerTemplate()), c = e("<div>").addClass("timepicker").append(this._getTimePickerTemplate()), d = e("<ul>").addClass("list-unstyled"), f = e("<li>").addClass("picker-switch" + (this._options.collapse ? " accordion-toggle" : "")).append(this._getToolbar()); return this._options.inline && a.removeClass("dropdown-menu"), this.use24Hours && a.addClass("usetwentyfour"), this._isEnabled("s") && !this.use24Hours && a.addClass("wider"), this._options.sideBySide && this._hasDate() && this._hasTime() ? (a.addClass("timepicker-sbs"), "top" === this._options.toolbarPlacement && a.append(f), a.append(e("<div>").addClass("row").append(b.addClass("col-md-6")).append(c.addClass("col-md-6"))), "bottom" !== this._options.toolbarPlacement && "default" !== this._options.toolbarPlacement || a.append(f), a) : ("top" === this._options.toolbarPlacement && d.append(f), this._hasDate() && d.append(e("<li>").addClass(this._options.collapse && this._hasTime() ? "collapse" : "").addClass(this._options.collapse && this._hasTime() && "time" === this._options.viewMode ? "" : "show").append(b)), "default" === this._options.toolbarPlacement && d.append(f), this._hasTime() && d.append(e("<li>").addClass(this._options.collapse && this._hasDate() ? "collapse" : "").addClass(this._options.collapse && this._hasDate() && "time" === this._options.viewMode ? "show" : "").append(c)), "bottom" === this._options.toolbarPlacement && d.append(f), a.append(d)) }, k.prototype._place = function (a) { var b = a && a.data && a.data.picker || this, c = b._options.widgetPositioning.vertical, d = b._options.widgetPositioning.horizontal, f = void 0, g = (b.component || b._element).position(), h = (b.component || b._element).offset(); if (b._options.widgetParent) f = b._options.widgetParent.append(b.widget); else if (b._element.is("input")) f = b._element.after(b.widget).parent(); else { if (b._options.inline) return void (f = b._element.append(b.widget)); f = b._element, b._element.children().first().after(b.widget) } if ("auto" === c && (c = h.top + 1.5 * b.widget.height() >= e(window).height() + e(window).scrollTop() && b.widget.height() + b._element.outerHeight() < h.top ? "top" : "bottom"), "auto" === d && (d = f.width() < h.left + b.widget.outerWidth() / 2 && h.left + b.widget.outerWidth() > e(window).width() ? "right" : "left"), "top" === c ? b.widget.addClass("top").removeClass("bottom") : b.widget.addClass("bottom").removeClass("top"), "right" === d ? b.widget.addClass("float-right") : b.widget.removeClass("float-right"), "relative" !== f.css("position") && (f = f.parents().filter(function () { return "relative" === e(this).css("position") }).first()), 0 === f.length) throw new Error("datetimepicker component should be placed within a relative positioned container"); b.widget.css({ top: "top" === c ? "auto" : g.top + b._element.outerHeight() + "px", bottom: "top" === c ? f.outerHeight() - (f === b._element ? 0 : g.top) + "px" : "auto", left: "left" === d ? (f === b._element ? 0 : g.left) + "px" : "auto", right: "left" === d ? "auto" : f.outerWidth() - b._element.outerWidth() - (f === b._element ? 0 : g.left) + "px" }) }, k.prototype._fillDow = function () { var a = e("<tr>"), b = this._viewDate.clone().startOf("w").startOf("d"); for (this._options.calendarWeeks === !0 && a.append(e("<th>").addClass("cw").text("#")); b.isBefore(this._viewDate.clone().endOf("w"));)a.append(e("<th>").addClass("dow").text(b.format("dd"))), b.add(1, "d"); this.widget.find(".datepicker-days thead").append(a) }, k.prototype._fillMonths = function () { for (var a = [], b = this._viewDate.clone().startOf("y").startOf("d"); b.isSame(this._viewDate, "y");)a.push(e("<span>").attr("data-action", "selectMonth").addClass("month").text(b.format("MMM"))), b.add(1, "M"); this.widget.find(".datepicker-months td").empty().append(a) }, k.prototype._updateMonths = function () { var a = this.widget.find(".datepicker-months"), b = a.find("th"), c = a.find("tbody").find("span"), d = this; b.eq(0).find("span").attr("title", this._options.tooltips.prevYear), b.eq(1).attr("title", this._options.tooltips.selectYear), b.eq(2).find("span").attr("title", this._options.tooltips.nextYear), a.find(".disabled").removeClass("disabled"), this._isValid(this._viewDate.clone().subtract(1, "y"), "y") || b.eq(0).addClass("disabled"), b.eq(1).text(this._viewDate.year()), this._isValid(this._viewDate.clone().add(1, "y"), "y") || b.eq(2).addClass("disabled"), c.removeClass("active"), this._getLastPickedDate().isSame(this._viewDate, "y") && !this.unset && c.eq(this._getLastPickedDate().month()).addClass("active"), c.each(function (a) { d._isValid(d._viewDate.clone().month(a), "M") || e(this).addClass("disabled") }) }, k.prototype._getStartEndYear = function (a, b) { var c = a / 10, d = Math.floor(b / a) * a, e = d + 9 * c, f = Math.floor(b / c) * c; return [d, e, f] }, k.prototype._updateYears = function () { var a = this.widget.find(".datepicker-years"), b = a.find("th"), c = this._getStartEndYear(10, this._viewDate.year()), d = this._viewDate.clone().year(c[0]), e = this._viewDate.clone().year(c[1]), f = ""; for (b.eq(0).find("span").attr("title", this._options.tooltips.prevDecade), b.eq(1).attr("title", this._options.tooltips.selectDecade), b.eq(2).find("span").attr("title", this._options.tooltips.nextDecade), a.find(".disabled").removeClass("disabled"), this._options.minDate && this._options.minDate.isAfter(d, "y") && b.eq(0).addClass("disabled"), b.eq(1).text(d.year() + "-" + e.year()), this._options.maxDate && this._options.maxDate.isBefore(e, "y") && b.eq(2).addClass("disabled"), f += '<span data-action="selectYear" class="year old">' + (d.year() - 1) + "</span>"; !d.isAfter(e, "y");)f += '<span data-action="selectYear" class="year' + (d.isSame(this._getLastPickedDate(), "y") && !this.unset ? " active" : "") + (this._isValid(d, "y") ? "" : " disabled") + '">' + d.year() + "</span>", d.add(1, "y"); f += '<span data-action="selectYear" class="year old">' + d.year() + "</span>", a.find("td").html(f) }, k.prototype._updateDecades = function () { var a = this.widget.find(".datepicker-decades"), b = a.find("th"), c = this._getStartEndYear(100, this._viewDate.year()), d = this._viewDate.clone().year(c[0]), e = this._viewDate.clone().year(c[1]), f = !1, g = !1, h = void 0, i = ""; for (b.eq(0).find("span").attr("title", this._options.tooltips.prevCentury), b.eq(2).find("span").attr("title", this._options.tooltips.nextCentury), a.find(".disabled").removeClass("disabled"), (0 === d.year() || this._options.minDate && this._options.minDate.isAfter(d, "y")) && b.eq(0).addClass("disabled"), b.eq(1).text(d.year() + "-" + e.year()), this._options.maxDate && this._options.maxDate.isBefore(e, "y") && b.eq(2).addClass("disabled"), i += d.year() - 10 < 0 ? "<span> </span>" : '<span data-action="selectDecade" class="decade old" data-selection="' + (d.year() + 6) + '">' + (d.year() - 10) + "</span>"; !d.isAfter(e, "y");)h = d.year() + 11, f = this._options.minDate && this._options.minDate.isAfter(d, "y") && this._options.minDate.year() <= h, g = this._options.maxDate && this._options.maxDate.isAfter(d, "y") && this._options.maxDate.year() <= h, i += '<span data-action="selectDecade" class="decade' + (this._getLastPickedDate().isAfter(d) && this._getLastPickedDate().year() <= h ? " active" : "") + (this._isValid(d, "y") || f || g ? "" : " disabled") + '" data-selection="' + (d.year() + 6) + '">' + d.year() + "</span>", d.add(10, "y"); i += '<span data-action="selectDecade" class="decade old" data-selection="' + (d.year() + 6) + '">' + d.year() + "</span>", a.find("td").html(i) }, k.prototype._fillDate = function () { var a = this.widget.find(".datepicker-days"), b = a.find("th"), c = [], d = void 0, f = void 0, g = void 0, h = void 0; if (this._hasDate()) { for (b.eq(0).find("span").attr("title", this._options.tooltips.prevMonth), b.eq(1).attr("title", this._options.tooltips.selectMonth), b.eq(2).find("span").attr("title", this._options.tooltips.nextMonth), a.find(".disabled").removeClass("disabled"), b.eq(1).text(this._viewDate.format(this._options.dayViewHeaderFormat)), this._isValid(this._viewDate.clone().subtract(1, "M"), "M") || b.eq(0).addClass("disabled"), this._isValid(this._viewDate.clone().add(1, "M"), "M") || b.eq(2).addClass("disabled"), d = this._viewDate.clone().startOf("M").startOf("w").startOf("d"), h = 0; h < 42; h++) { if (0 === d.weekday() && (f = e("<tr>"), this._options.calendarWeeks && f.append('<td class="cw">' + d.week() + "</td>"), c.push(f)), g = "", d.isBefore(this._viewDate, "M") && (g += " old"), d.isAfter(this._viewDate, "M") && (g += " new"), this._options.allowMultidate) { var i = this._datesFormatted.indexOf(d.format("YYYY-MM-DD")); i !== -1 && d.isSame(this._datesFormatted[i], "d") && !this.unset && (g += " active") } else d.isSame(this._getLastPickedDate(), "d") && !this.unset && (g += " active"); this._isValid(d, "d") || (g += " disabled"), d.isSame(this.getMoment(), "d") && (g += " today"), 0 !== d.day() && 6 !== d.day() || (g += " weekend"), f.append('<td data-action="selectDay" data-day="' + d.format("L") + '" class="day' + g + '">' + d.date() + "</td>"), d.add(1, "d") } a.find("tbody").empty().append(c), this._updateMonths(), this._updateYears(), this._updateDecades() } }, k.prototype._fillHours = function () { var a = this.widget.find(".timepicker-hours table"), b = this._viewDate.clone().startOf("d"), c = [], d = e("<tr>"); for (this._viewDate.hour() > 11 && !this.use24Hours && b.hour(12); b.isSame(this._viewDate, "d") && (this.use24Hours || this._viewDate.hour() < 12 && b.hour() < 12 || this._viewDate.hour() > 11);)b.hour() % 4 === 0 && (d = e("<tr>"), c.push(d)), d.append('<td data-action="selectHour" class="hour' + (this._isValid(b, "h") ? "" : " disabled") + '">' + b.format(this.use24Hours ? "HH" : "hh") + "</td>"), b.add(1, "h"); a.empty().append(c) }, k.prototype._fillMinutes = function () { for (var a = this.widget.find(".timepicker-minutes table"), b = this._viewDate.clone().startOf("h"), c = [], d = 1 === this._options.stepping ? 5 : this._options.stepping, f = e("<tr>"); this._viewDate.isSame(b, "h");)b.minute() % (4 * d) === 0 && (f = e("<tr>"), c.push(f)), f.append('<td data-action="selectMinute" class="minute' + (this._isValid(b, "m") ? "" : " disabled") + '">' + b.format("mm") + "</td>"), b.add(d, "m"); a.empty().append(c) }, k.prototype._fillSeconds = function () { for (var a = this.widget.find(".timepicker-seconds table"), b = this._viewDate.clone().startOf("m"), c = [], d = e("<tr>"); this._viewDate.isSame(b, "m");)b.second() % 20 === 0 && (d = e("<tr>"), c.push(d)), d.append('<td data-action="selectSecond" class="second' + (this._isValid(b, "s") ? "" : " disabled") + '">' + b.format("ss") + "</td>"), b.add(5, "s"); a.empty().append(c) }, k.prototype._fillTime = function () { var a = void 0, b = void 0, c = this.widget.find(".timepicker span[data-time-component]"); this.use24Hours || (a = this.widget.find(".timepicker [data-action=togglePeriod]"), b = this._getLastPickedDate().clone().add(this._getLastPickedDate().hours() >= 12 ? -12 : 12, "h"), a.text(this._getLastPickedDate().format("A")), this._isValid(b, "h") ? a.removeClass("disabled") : a.addClass("disabled")), c.filter("[data-time-component=hours]").text(this._getLastPickedDate().format("" + (this.use24Hours ? "HH" : "hh"))), c.filter("[data-time-component=minutes]").text(this._getLastPickedDate().format("mm")), c.filter("[data-time-component=seconds]").text(this._getLastPickedDate().format("ss")), this._fillHours(), this._fillMinutes(), this._fillSeconds() }, k.prototype._doAction = function (a, b) { var c = this._getLastPickedDate(); if (e(a.currentTarget).is(".disabled")) return !1; switch (b = b || e(a.currentTarget).data("action")) { case "next": var d = f.DatePickerModes[this.currentViewMode].NAV_FUNCTION; this._viewDate.add(f.DatePickerModes[this.currentViewMode].NAV_STEP, d), this._fillDate(), this._viewUpdate(d); break; case "previous": var g = f.DatePickerModes[this.currentViewMode].NAV_FUNCTION; this._viewDate.subtract(f.DatePickerModes[this.currentViewMode].NAV_STEP, g), this._fillDate(), this._viewUpdate(g); break; case "pickerSwitch": this._showMode(1); break; case "selectMonth": var h = e(a.target).closest("tbody").find("span").index(e(a.target)); this._viewDate.month(h), this.currentViewMode === f.MinViewModeNumber ? (this._setValue(c.clone().year(this._viewDate.year()).month(this._viewDate.month()), this._getLastPickedDateIndex()), this._options.inline || this.hide()) : (this._showMode(-1), this._fillDate()), this._viewUpdate("M"); break; case "selectYear": var i = parseInt(e(a.target).text(), 10) || 0; this._viewDate.year(i), this.currentViewMode === f.MinViewModeNumber ? (this._setValue(c.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()), this._options.inline || this.hide()) : (this._showMode(-1), this._fillDate()), this._viewUpdate("YYYY"); break; case "selectDecade": var j = parseInt(e(a.target).data("selection"), 10) || 0; this._viewDate.year(j), this.currentViewMode === f.MinViewModeNumber ? (this._setValue(c.clone().year(this._viewDate.year()), this._getLastPickedDateIndex()), this._options.inline || this.hide()) : (this._showMode(-1), this._fillDate()), this._viewUpdate("YYYY"); break; case "selectDay": var k = this._viewDate.clone(); e(a.target).is(".old") && k.subtract(1, "M"), e(a.target).is(".new") && k.add(1, "M"), this._setValue(k.date(parseInt(e(a.target).text(), 10)), this._getLastPickedDateIndex()), this._hasTime() || this._options.keepOpen || this._options.inline || this.hide(); break; case "incrementHours": var l = c.clone().add(1, "h"); this._isValid(l, "h") && this._setValue(l, this._getLastPickedDateIndex()); break; case "incrementMinutes": var m = c.clone().add(this._options.stepping, "m"); this._isValid(m, "m") && this._setValue(m, this._getLastPickedDateIndex()); break; case "incrementSeconds": var n = c.clone().add(1, "s"); this._isValid(n, "s") && this._setValue(n, this._getLastPickedDateIndex()); break; case "decrementHours": var o = c.clone().subtract(1, "h"); this._isValid(o, "h") && this._setValue(o, this._getLastPickedDateIndex()); break; case "decrementMinutes": var p = c.clone().subtract(this._options.stepping, "m"); this._isValid(p, "m") && this._setValue(p, this._getLastPickedDateIndex()); break; case "decrementSeconds": var q = c.clone().subtract(1, "s"); this._isValid(q, "s") && this._setValue(q, this._getLastPickedDateIndex()); break; case "togglePeriod": this._setValue(c.clone().add(c.hours() >= 12 ? -12 : 12, "h"), this._getLastPickedDateIndex()); break; case "togglePicker": var r = e(a.target), s = r.closest("a"), t = r.closest("ul"), u = t.find(".show"), v = t.find(".collapse:not(.show)"), w = r.is("span") ? r : r.find("span"), x = void 0; if (u && u.length) { if (x = u.data("collapse"), x && x.transitioning) return !0; u.collapse ? (u.collapse("hide"), v.collapse("show")) : (u.removeClass("show"), v.addClass("show")), w.toggleClass(this._options.icons.time + " " + this._options.icons.date), w.hasClass(this._options.icons.date) ? s.attr("title", this._options.tooltips.selectDate) : s.attr("title", this._options.tooltips.selectTime) } break; case "showPicker": this.widget.find(".timepicker > div:not(.timepicker-picker)").hide(), this.widget.find(".timepicker .timepicker-picker").show(); break; case "showHours": this.widget.find(".timepicker .timepicker-picker").hide(), this.widget.find(".timepicker .timepicker-hours").show(); break; case "showMinutes": this.widget.find(".timepicker .timepicker-picker").hide(), this.widget.find(".timepicker .timepicker-minutes").show(); break; case "showSeconds": this.widget.find(".timepicker .timepicker-picker").hide(), this.widget.find(".timepicker .timepicker-seconds").show(); break; case "selectHour": var y = parseInt(e(a.target).text(), 10); this.use24Hours || (c.hours() >= 12 ? 12 !== y && (y += 12) : 12 === y && (y = 0)), this._setValue(c.clone().hours(y), this._getLastPickedDateIndex()), this._doAction(a, "showPicker"); break; case "selectMinute": this._setValue(c.clone().minutes(parseInt(e(a.target).text(), 10)), this._getLastPickedDateIndex()), this._doAction(a, "showPicker"); break; case "selectSecond": this._setValue(c.clone().seconds(parseInt(e(a.target).text(), 10)), this._getLastPickedDateIndex()), this._doAction(a, "showPicker"); break; case "clear": this.clear(); break; case "today": var z = this.getMoment(); this._isValid(z, "d") && this._setValue(z, this._getLastPickedDateIndex()) }return !1 }, k.prototype.hide = function () { var a = !1; this.widget && (this.widget.find(".collapse").each(function () { var b = e(this).data("collapse"); return !b || !b.transitioning || (a = !0, !1) }), a || (this.component && this.component.hasClass("btn") && this.component.toggleClass("active"), this.widget.hide(), e(window).off("resize", this._place()), this.widget.off("click", "[data-action]"), this.widget.off("mousedown", !1), this.widget.remove(), this.widget = !1, this._notifyEvent({ type: f.Event.HIDE, date: this._getLastPickedDate().clone() }), void 0 !== this.input && this.input.blur(), this._viewDate = this._getLastPickedDate().clone())) }, k.prototype.show = function () { var a = void 0, b = { 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) } }; if (void 0 !== this.input) { if (this.input.prop("disabled") || !this._options.ignoreReadonly && this.input.prop("readonly") || this.widget) return; void 0 !== this.input.val() && 0 !== this.input.val().trim().length ? this._setValue(this._parseInputDate(this.input.val().trim()), 0) : this.unset && this._options.useCurrent && (a = this.getMoment(), "string" == typeof this._options.useCurrent && (a = b[this._options.useCurrent](a)), this._setValue(a, 0)) } else this.unset && this._options.useCurrent && (a = this.getMoment(), "string" == typeof this._options.useCurrent && (a = b[this._options.useCurrent](a)), this._setValue(a, 0)); this.widget = this._getTemplate(), this._fillDow(), this._fillMonths(), this.widget.find(".timepicker-hours").hide(), this.widget.find(".timepicker-minutes").hide(), this.widget.find(".timepicker-seconds").hide(), this._update(), this._showMode(), e(window).on("resize", { picker: this }, this._place), this.widget.on("click", "[data-action]", e.proxy(this._doAction, this)), this.widget.on("mousedown", !1), this.component && this.component.hasClass("btn") && this.component.toggleClass("active"), this._place(), this.widget.show(), void 0 !== this.input && this._options.focusOnShow && !this.input.is(":focus") && this.input.focus(), this._notifyEvent({ type: f.Event.SHOW }) }, k.prototype.destroy = function () { this.hide(), this._element.removeData(f.DATA_KEY), this._element.removeData("date") }, k.prototype.disable = function () { this.hide(), this.component && this.component.hasClass("btn") && this.component.addClass("disabled"), void 0 !== this.input && this.input.prop("disabled", !0) }, k.prototype.enable = function () { this.component && this.component.hasClass("btn") && this.component.removeClass("disabled"), void 0 !== this.input && this.input.prop("disabled", !1) }, k.prototype.toolbarPlacement = function (a) { if (0 === arguments.length) return this._options.toolbarPlacement; if ("string" != typeof a) throw new TypeError("toolbarPlacement() expects a string parameter"); if (j.indexOf(a) === -1) throw new TypeError("toolbarPlacement() parameter must be one of (" + j.join(", ") + ") value"); this._options.toolbarPlacement = a, this.widget && (this.hide(), this.show()) }, k.prototype.widgetPositioning = function (a) { if (0 === arguments.length) return e.extend({}, this._options.widgetPositioning); if ("[object Object]" !== {}.toString.call(a)) throw new TypeError("widgetPositioning() expects an object variable"); if (a.horizontal) { if ("string" != typeof a.horizontal) throw new TypeError("widgetPositioning() horizontal variable must be a string"); if (a.horizontal = a.horizontal.toLowerCase(), i.indexOf(a.horizontal) === -1) throw new TypeError("widgetPositioning() expects horizontal parameter to be one of (" + i.join(", ") + ")"); this._options.widgetPositioning.horizontal = a.horizontal } if (a.vertical) { if ("string" != typeof a.vertical) throw new TypeError("widgetPositioning() vertical variable must be a string"); if (a.vertical = a.vertical.toLowerCase(), h.indexOf(a.vertical) === -1) throw new TypeError("widgetPositioning() expects vertical parameter to be one of (" + h.join(", ") + ")"); this._options.widgetPositioning.vertical = a.vertical } this._update() }, k.prototype.widgetParent = function (a) { if (0 === arguments.length) return this._options.widgetParent; if ("string" == typeof a && (a = e(a)), null !== a && "string" != typeof a && !(a instanceof e)) throw new TypeError("widgetParent() expects a string or a jQuery object parameter"); this._options.widgetParent = a, this.widget && (this.hide(), this.show()) }, k._jQueryHandleThis = function (a, b, c) { var g = e(a).data(f.DATA_KEY); if ("object" === ("undefined" == typeof b ? "undefined" : d(b)) && e.extend({}, f.Default, b), g || (g = new k(e(a), b), e(a).data(f.DATA_KEY, g)), "string" == typeof b) { if (void 0 === g[b]) throw new Error('No method named "' + b + '"'); return void 0 === c ? g[b]() : g[b](c) } }, k._jQueryInterface = function (a, b) { return 1 === this.length ? k._jQueryHandleThis(this[0], a, b) : this.each(function () { k._jQueryHandleThis(this, a, b) }) }, k
|
|
}(f); return e(document).on(f.Event.CLICK_DATA_API, f.Selector.DATA_TOGGLE, function () { var a = k(e(this)); 0 !== a.length && l._jQueryInterface.call(a, "toggle") }).on(f.Event.CHANGE, "." + f.ClassName.INPUT, function (a) { var b = k(e(this)); 0 !== b.length && l._jQueryInterface.call(b, "_change", a) }).on(f.Event.BLUR, "." + f.ClassName.INPUT, function (a) { var b = k(e(this)), c = b.data(f.DATA_KEY); 0 !== b.length && (c._options.debug || window.debug || l._jQueryInterface.call(b, "hide", a)) }).on(f.Event.KEYDOWN, "." + f.ClassName.INPUT, function (a) { var b = k(e(this)); 0 !== b.length && l._jQueryInterface.call(b, "_keydown", a) }).on(f.Event.KEYUP, "." + f.ClassName.INPUT, function (a) { var b = k(e(this)); 0 !== b.length && l._jQueryInterface.call(b, "_keyup", a) }).on(f.Event.FOCUS, "." + f.ClassName.INPUT, function (a) { var b = k(e(this)), c = b.data(f.DATA_KEY); 0 !== b.length && c._options.allowInputToggle && l._jQueryInterface.call(b, c, a) }), e.fn[f.NAME] = l._jQueryInterface, e.fn[f.NAME].Constructor = l, e.fn[f.NAME].noConflict = function () { return e.fn[f.NAME] = g, l._jQueryInterface }, l
|
|
})(jQuery)
|
|
}(); |