File manager - Edit - /home/asiatechinc/public_html/asiatech-websites/casadecalangute.com/js/plugins/datepicker.js
Back
! function(t, e, i) { ! function() { var s, a, n, h = "2.2.3", o = "datepicker", r = ".datepicker-here", c = !1, d = '<div class="datepicker"><i class="datepicker--pointer"></i><nav class="datepicker--nav"></nav><div class="datepicker--content"></div></div>', l = { classes: "", inline: !1, language: "ru", startDate: new Date, firstDay: "", weekends: [6, 0], dateFormat: "", altField: "", altFieldDateFormat: "@", toggleSelected: !0, keyboardNav: !0, position: "bottom left", offset: 12, view: "days", minView: "days", showOtherMonths: !0, selectOtherMonths: !0, moveToOtherMonthsOnSelect: !0, showOtherYears: !0, selectOtherYears: !0, moveToOtherYearsOnSelect: !0, minDate: "", maxDate: "", disableNavWhenOutOfRange: !0, multipleDates: !1, multipleDatesSeparator: ",", range: !1, todayButton: !1, clearButton: !1, showEvent: "focus", autoClose: !1, monthsField: "monthsShort", prevHtml: '<svg><path d="M 17,12 l -5,5 l 5,5"></path></svg>', nextHtml: '<svg><path d="M 14,12 l 5,5 l -5,5"></path></svg>', navTitles: { days: "MM, <i>yyyy</i>", months: "yyyy", years: "yyyy1 - yyyy2" }, timepicker: !1, onlyTimepicker: !1, dateTimeSeparator: " ", timeFormat: "", minHours: 0, maxHours: 24, minMinutes: 0, maxMinutes: 59, hoursStep: 1, minutesStep: 1, onSelect: "", onShow: "", onHide: "", onChangeMonth: "", onChangeYear: "", onChangeDecade: "", onChangeView: "", onRenderCell: "" }, u = { ctrlRight: [17, 39], ctrlUp: [17, 38], ctrlLeft: [17, 37], ctrlDown: [17, 40], shiftRight: [16, 39], shiftUp: [16, 38], shiftLeft: [16, 37], shiftDown: [16, 40], altUp: [18, 38], altRight: [18, 39], altLeft: [18, 37], altDown: [18, 40], ctrlShiftUp: [16, 17, 38] }, m = function(t, a) { this.el = t, this.$el = e(t), this.opts = e.extend(!0, {}, l, a, this.$el.data()), s == i && (s = e("html")), this.opts.startDate || (this.opts.startDate = new Date), "INPUT" == this.el.nodeName && (this.elIsInput = !0), this.opts.altField && (this.$altField = "string" == typeof this.opts.altField ? e(this.opts.altField) : this.opts.altField), this.inited = !1, this.visible = !1, this.silent = !1, this.currentDate = this.opts.startDate, this.currentView = this.opts.view, this._createShortCuts(), this.selectedDates = [], this.views = {}, this.keys = [], this.minRange = "", this.maxRange = "", this._prevOnSelectValue = "", this.init() }; n = m, n.prototype = { VERSION: h, viewIndexes: ["days", "months", "years"], init: function() { c || this.opts.inline || !this.elIsInput || this._buildDatepickersContainer(), this._buildBaseHtml(), this._defineLocale(this.opts.language), this._syncWithMinMaxDates(), this.elIsInput && (this.opts.inline || (this._setPositionClasses(this.opts.position), this._bindEvents()), this.opts.keyboardNav && !this.opts.onlyTimepicker && this._bindKeyboardEvents(), this.$datepicker.on("mousedown", this._onMouseDownDatepicker.bind(this)), this.$datepicker.on("mouseup", this._onMouseUpDatepicker.bind(this))), this.opts.classes && this.$datepicker.addClass(this.opts.classes), this.opts.timepicker && (this.timepicker = new e.fn.datepicker.Timepicker(this, this.opts), this._bindTimepickerEvents()), this.opts.onlyTimepicker && this.$datepicker.addClass("-only-timepicker-"), this.views[this.currentView] = new e.fn.datepicker.Body(this, this.currentView, this.opts), this.views[this.currentView].show(), this.nav = new e.fn.datepicker.Navigation(this, this.opts), this.view = this.currentView, this.$el.on("clickCell.adp", this._onClickCell.bind(this)), this.$datepicker.on("mouseenter", ".datepicker--cell", this._onMouseEnterCell.bind(this)), this.$datepicker.on("mouseleave", ".datepicker--cell", this._onMouseLeaveCell.bind(this)), this.inited = !0 }, _createShortCuts: function() { this.minDate = this.opts.minDate ? this.opts.minDate : new Date(-86399999136e5), this.maxDate = this.opts.maxDate ? this.opts.maxDate : new Date(86399999136e5) }, _bindEvents: function() { this.$el.on(this.opts.showEvent + ".adp", this._onShowEvent.bind(this)), this.$el.on("mouseup.adp", this._onMouseUpEl.bind(this)), this.$el.on("blur.adp", this._onBlur.bind(this)), this.$el.on("keyup.adp", this._onKeyUpGeneral.bind(this)), e(t).on("resize.adp", this._onResize.bind(this)), e("body").on("mouseup.adp", this._onMouseUpBody.bind(this)) }, _bindKeyboardEvents: function() { this.$el.on("keydown.adp", this._onKeyDown.bind(this)), this.$el.on("keyup.adp", this._onKeyUp.bind(this)), this.$el.on("hotKey.adp", this._onHotKey.bind(this)) }, _bindTimepickerEvents: function() { this.$el.on("timeChange.adp", this._onTimeChange.bind(this)) }, isWeekend: function(t) { return -1 !== this.opts.weekends.indexOf(t) }, _defineLocale: function(t) { "string" == typeof t ? (this.loc = e.fn.datepicker.language[t], this.loc || (console.warn("Can't find language \"" + t + '" in Datepicker.language, will use "ru" instead'), this.loc = e.extend(!0, {}, e.fn.datepicker.language.ru)), this.loc = e.extend(!0, {}, e.fn.datepicker.language.ru, e.fn.datepicker.language[t])) : this.loc = e.extend(!0, {}, e.fn.datepicker.language.ru, t), this.opts.dateFormat && (this.loc.dateFormat = this.opts.dateFormat), this.opts.timeFormat && (this.loc.timeFormat = this.opts.timeFormat), "" !== this.opts.firstDay && (this.loc.firstDay = this.opts.firstDay), this.opts.timepicker && (this.loc.dateFormat = [this.loc.dateFormat, this.loc.timeFormat].join(this.opts.dateTimeSeparator)), this.opts.onlyTimepicker && (this.loc.dateFormat = this.loc.timeFormat); var i = this._getWordBoundaryRegExp; (this.loc.timeFormat.match(i("aa")) || this.loc.timeFormat.match(i("AA"))) && (this.ampm = !0) }, _buildDatepickersContainer: function() { c = !0, s.append('<div class="datepickers-container" id="datepickers-container"></div>'), a = e("#datepickers-container") }, _buildBaseHtml: function() { var t, i = e('<div class="datepicker-inline">'); t = "INPUT" == this.el.nodeName ? this.opts.inline ? i.insertAfter(this.$el) : a : i.appendTo(this.$el), this.$datepicker = e(d).appendTo(t), this.$content = e(".datepicker--content", this.$datepicker), this.$nav = e(".datepicker--nav", this.$datepicker) }, _triggerOnChange: function() { if (!this.selectedDates.length) { if ("" === this._prevOnSelectValue) return; return this._prevOnSelectValue = "", this.opts.onSelect("", "", this) } var t, e = this.selectedDates, i = n.getParsedDate(e[0]), s = this, a = new Date(i.year, i.month, i.date, i.hours, i.minutes); t = e.map(function(t) { return s.formatDate(s.loc.dateFormat, t) }).join(this.opts.multipleDatesSeparator), (this.opts.multipleDates || this.opts.range) && (a = e.map(function(t) { var e = n.getParsedDate(t); return new Date(e.year, e.month, e.date, e.hours, e.minutes) })), this._prevOnSelectValue = t, this.opts.onSelect(t, a, this) }, next: function() { var t = this.parsedDate, e = this.opts; switch (this.view) { case "days": this.date = new Date(t.year, t.month + 1, 1), e.onChangeMonth && e.onChangeMonth(this.parsedDate.month, this.parsedDate.year); break; case "months": this.date = new Date(t.year + 1, t.month, 1), e.onChangeYear && e.onChangeYear(this.parsedDate.year); break; case "years": this.date = new Date(t.year + 10, 0, 1), e.onChangeDecade && e.onChangeDecade(this.curDecade) } }, prev: function() { var t = this.parsedDate, e = this.opts; switch (this.view) { case "days": this.date = new Date(t.year, t.month - 1, 1), e.onChangeMonth && e.onChangeMonth(this.parsedDate.month, this.parsedDate.year); break; case "months": this.date = new Date(t.year - 1, t.month, 1), e.onChangeYear && e.onChangeYear(this.parsedDate.year); break; case "years": this.date = new Date(t.year - 10, 0, 1), e.onChangeDecade && e.onChangeDecade(this.curDecade) } }, formatDate: function(t, e) { e = e || this.date; var i, s = t, a = this._getWordBoundaryRegExp, h = this.loc, o = n.getLeadingZeroNum, r = n.getDecade(e), c = n.getParsedDate(e), d = c.fullHours, l = c.hours, u = t.match(a("aa")) || t.match(a("AA")), m = "am", p = this._replacer; switch (this.opts.timepicker && this.timepicker && u && (i = this.timepicker._getValidHoursFromDate(e, u), d = o(i.hours), l = i.hours, m = i.dayPeriod), !0) { case /@/.test(s): s = s.replace(/@/, e.getTime()); case /aa/.test(s): s = p(s, a("aa"), m); case /AA/.test(s): s = p(s, a("AA"), m.toUpperCase()); case /dd/.test(s): s = p(s, a("dd"), c.fullDate); case /d/.test(s): s = p(s, a("d"), c.date); case /DD/.test(s): s = p(s, a("DD"), h.days[c.day]); case /D/.test(s): s = p(s, a("D"), h.daysShort[c.day]); case /mm/.test(s): s = p(s, a("mm"), c.fullMonth); case /m/.test(s): s = p(s, a("m"), c.month + 1); case /MM/.test(s): s = p(s, a("MM"), this.loc.months[c.month]); case /M/.test(s): s = p(s, a("M"), h.monthsShort[c.month]); case /ii/.test(s): s = p(s, a("ii"), c.fullMinutes); case /i/.test(s): s = p(s, a("i"), c.minutes); case /hh/.test(s): s = p(s, a("hh"), d); case /h/.test(s): s = p(s, a("h"), l); case /yyyy/.test(s): s = p(s, a("yyyy"), c.year); case /yyyy1/.test(s): s = p(s, a("yyyy1"), r[0]); case /yyyy2/.test(s): s = p(s, a("yyyy2"), r[1]); case /yy/.test(s): s = p(s, a("yy"), c.year.toString().slice(-2)) } return s }, _replacer: function(t, e, i) { return t.replace(e, function(t, e, s, a) { return e + i + a }) }, _getWordBoundaryRegExp: function(t) { var e = "\\s|\\.|-|/|\\\\|,|\\$|\\!|\\?|:|;"; return new RegExp("(^|>|" + e + ")(" + t + ")($|<|" + e + ")", "g") }, selectDate: function(t) { var e = this, i = e.opts, s = e.parsedDate, a = e.selectedDates, h = a.length, o = ""; if (Array.isArray(t)) return void t.forEach(function(t) { e.selectDate(t) }); if (t instanceof Date) { if (this.lastSelectedDate = t, this.timepicker && this.timepicker._setTime(t), e._trigger("selectDate", t), this.timepicker && (t.setHours(this.timepicker.hours), t.setMinutes(this.timepicker.minutes)), "days" == e.view && t.getMonth() != s.month && i.moveToOtherMonthsOnSelect && (o = new Date(t.getFullYear(), t.getMonth(), 1)), "years" == e.view && t.getFullYear() != s.year && i.moveToOtherYearsOnSelect && (o = new Date(t.getFullYear(), 0, 1)), o && (e.silent = !0, e.date = o, e.silent = !1, e.nav._render()), i.multipleDates && !i.range) { if (h === i.multipleDates) return; e._isSelected(t) || e.selectedDates.push(t) } else i.range ? 2 == h ? (e.selectedDates = [t], e.minRange = t, e.maxRange = "") : 1 == h ? (e.selectedDates.push(t), e.maxRange ? e.minRange = t : e.maxRange = t, n.bigger(e.maxRange, e.minRange) && (e.maxRange = e.minRange, e.minRange = t), e.selectedDates = [e.minRange, e.maxRange]) : (e.selectedDates = [t], e.minRange = t) : e.selectedDates = [t]; e._setInputValue(), i.onSelect && e._triggerOnChange(), i.autoClose && !this.timepickerIsActive && (i.multipleDates || i.range ? i.range && 2 == e.selectedDates.length && e.hide() : e.hide()), e.views[this.currentView]._render() } }, removeDate: function(t) { var e = this.selectedDates, i = this; if (t instanceof Date) return e.some(function(s, a) { return n.isSame(s, t) ? (e.splice(a, 1), i.selectedDates.length ? i.lastSelectedDate = i.selectedDates[i.selectedDates.length - 1] : (i.minRange = "", i.maxRange = "", i.lastSelectedDate = ""), i.views[i.currentView]._render(), i._setInputValue(), i.opts.onSelect && i._triggerOnChange(), !0) : void 0 }) }, today: function() { this.silent = !0, this.view = this.opts.minView, this.silent = !1, this.date = new Date, this.opts.todayButton instanceof Date && this.selectDate(this.opts.todayButton) }, clear: function() { this.selectedDates = [], this.minRange = "", this.maxRange = "", this.views[this.currentView]._render(), this._setInputValue(), this.opts.onSelect && this._triggerOnChange() }, update: function(t, i) { var s = arguments.length, a = this.lastSelectedDate; return 2 == s ? this.opts[t] = i : 1 == s && "object" == typeof t && (this.opts = e.extend(!0, this.opts, t)), this._createShortCuts(), this._syncWithMinMaxDates(), this._defineLocale(this.opts.language), this.nav._addButtonsIfNeed(), this.opts.onlyTimepicker || this.nav._render(), this.views[this.currentView]._render(), this.elIsInput && !this.opts.inline && (this._setPositionClasses(this.opts.position), this.visible && this.setPosition(this.opts.position)), this.opts.classes && this.$datepicker.addClass(this.opts.classes), this.opts.onlyTimepicker && this.$datepicker.addClass("-only-timepicker-"), this.opts.timepicker && (a && this.timepicker._handleDate(a), this.timepicker._updateRanges(), this.timepicker._updateCurrentTime(), a && (a.setHours(this.timepicker.hours), a.setMinutes(this.timepicker.minutes))), this._setInputValue(), this }, _syncWithMinMaxDates: function() { var t = this.date.getTime(); this.silent = !0, this.minTime > t && (this.date = this.minDate), this.maxTime < t && (this.date = this.maxDate), this.silent = !1 }, _isSelected: function(t, e) { var i = !1; return this.selectedDates.some(function(s) { return n.isSame(s, t, e) ? (i = s, !0) : void 0 }), i }, _setInputValue: function() { var t, e = this, i = e.opts, s = e.loc.dateFormat, a = i.altFieldDateFormat, n = e.selectedDates.map(function(t) { return e.formatDate(s, t) }); i.altField && e.$altField.length && (t = this.selectedDates.map(function(t) { return e.formatDate(a, t) }), t = t.join(this.opts.multipleDatesSeparator), this.$altField.val(t)), n = n.join(this.opts.multipleDatesSeparator), this.$el.val(n) }, _isInRange: function(t, e) { var i = t.getTime(), s = n.getParsedDate(t), a = n.getParsedDate(this.minDate), h = n.getParsedDate(this.maxDate), o = new Date(s.year, s.month, a.date).getTime(), r = new Date(s.year, s.month, h.date).getTime(), c = { day: i >= this.minTime && i <= this.maxTime, month: o >= this.minTime && r <= this.maxTime, year: s.year >= a.year && s.year <= h.year }; return e ? c[e] : c.day }, _getDimensions: function(t) { var e = t.offset(); return { width: t.outerWidth(), height: t.outerHeight(), left: e.left, top: e.top } }, _getDateFromCell: function(t) { var e = this.parsedDate, s = t.data("year") || e.year, a = t.data("month") == i ? e.month : t.data("month"), n = t.data("date") || 1; return new Date(s, a, n) }, _setPositionClasses: function(t) { t = t.split(" "); var e = t[0], i = t[1], s = "datepicker -" + e + "-" + i + "- -from-" + e + "-"; this.visible && (s += " active"), this.$datepicker.removeAttr("class").addClass(s) }, setPosition: function(t) { t = t || this.opts.position; var e, i, s = this._getDimensions(this.$el), a = this._getDimensions(this.$datepicker), n = t.split(" "), h = this.opts.offset, o = n[0], r = n[1]; switch (o) { case "top": e = s.top - a.height - h; break; case "right": i = s.left + s.width + h; break; case "bottom": e = s.top + s.height + h; break; case "left": i = s.left - a.width - h } switch (r) { case "top": e = s.top; break; case "right": i = s.left + s.width - a.width; break; case "bottom": e = s.top + s.height - a.height; break; case "left": i = s.left; break; case "center": /left|right/.test(o) ? e = s.top + s.height / 2 - a.height / 2 : i = s.left + s.width / 2 - a.width / 2 } this.$datepicker.css({ left: i, top: e }) }, show: function() { var t = this.opts.onShow; this.setPosition(this.opts.position), this.$datepicker.addClass("active"), this.visible = !0, t && this._bindVisionEvents(t) }, hide: function() { var t = this.opts.onHide; this.$datepicker.removeClass("active").css({ left: "-100000px" }), this.focused = "", this.keys = [], this.inFocus = !1, this.visible = !1, this.$el.blur(), t && this._bindVisionEvents(t) }, down: function(t) { this._changeView(t, "down") }, up: function(t) { this._changeView(t, "up") }, _bindVisionEvents: function(t) { this.$datepicker.off("transitionend.dp"), t(this, !1), this.$datepicker.one("transitionend.dp", t.bind(this, this, !0)) }, _changeView: function(t, e) { t = t || this.focused || this.date; var i = "up" == e ? this.viewIndex + 1 : this.viewIndex - 1; i > 2 && (i = 2), 0 > i && (i = 0), this.silent = !0, this.date = new Date(t.getFullYear(), t.getMonth(), 1), this.silent = !1, this.view = this.viewIndexes[i] }, _handleHotKey: function(t) { var e, i, s, a = n.getParsedDate(this._getFocusedDate()), h = this.opts, o = !1, r = !1, c = !1, d = a.year, l = a.month, u = a.date; switch (t) { case "ctrlRight": case "ctrlUp": l += 1, o = !0; break; case "ctrlLeft": case "ctrlDown": l -= 1, o = !0; break; case "shiftRight": case "shiftUp": r = !0, d += 1; break; case "shiftLeft": case "shiftDown": r = !0, d -= 1; break; case "altRight": case "altUp": c = !0, d += 10; break; case "altLeft": case "altDown": c = !0, d -= 10; break; case "ctrlShiftUp": this.up() } s = n.getDaysCount(new Date(d, l)), i = new Date(d, l, u), u > s && (u = s), i.getTime() < this.minTime ? i = this.minDate : i.getTime() > this.maxTime && (i = this.maxDate), this.focused = i, e = n.getParsedDate(i), o && h.onChangeMonth && h.onChangeMonth(e.month, e.year), r && h.onChangeYear && h.onChangeYear(e.year), c && h.onChangeDecade && h.onChangeDecade(this.curDecade) }, _registerKey: function(t) { var e = this.keys.some(function(e) { return e == t }); e || this.keys.push(t) }, _unRegisterKey: function(t) { var e = this.keys.indexOf(t); this.keys.splice(e, 1) }, _isHotKeyPressed: function() { var t, e = !1, i = this, s = this.keys.sort(); for (var a in u) t = u[a], s.length == t.length && t.every(function(t, e) { return t == s[e] }) && (i._trigger("hotKey", a), e = !0); return e }, _trigger: function(t, e) { this.$el.trigger(t, e) }, _focusNextCell: function(t, e) { e = e || this.cellType; var i = n.getParsedDate(this._getFocusedDate()), s = i.year, a = i.month, h = i.date; if (!this._isHotKeyPressed()) { switch (t) { case 37: "day" == e ? h -= 1 : "", "month" == e ? a -= 1 : "", "year" == e ? s -= 1 : ""; break; case 38: "day" == e ? h -= 7 : "", "month" == e ? a -= 3 : "", "year" == e ? s -= 4 : ""; break; case 39: "day" == e ? h += 1 : "", "month" == e ? a += 1 : "", "year" == e ? s += 1 : ""; break; case 40: "day" == e ? h += 7 : "", "month" == e ? a += 3 : "", "year" == e ? s += 4 : "" } var o = new Date(s, a, h); o.getTime() < this.minTime ? o = this.minDate : o.getTime() > this.maxTime && (o = this.maxDate), this.focused = o } }, _getFocusedDate: function() { var t = this.focused || this.selectedDates[this.selectedDates.length - 1], e = this.parsedDate; if (!t) switch (this.view) { case "days": t = new Date(e.year, e.month, (new Date).getDate()); break; case "months": t = new Date(e.year, e.month, 1); break; case "years": t = new Date(e.year, 0, 1) } return t }, _getCell: function(t, i) { i = i || this.cellType; var s, a = n.getParsedDate(t), h = '.datepicker--cell[data-year="' + a.year + '"]'; switch (i) { case "month": h = '[data-month="' + a.month + '"]'; break; case "day": h += '[data-month="' + a.month + '"][data-date="' + a.date + '"]' } return s = this.views[this.currentView].$el.find(h), s.length ? s : e("") }, destroy: function() { var t = this; t.$el.off(".adp").data("datepicker", ""), t.selectedDates = [], t.focused = "", t.views = {}, t.keys = [], t.minRange = "", t.maxRange = "", t.opts.inline || !t.elIsInput ? t.$datepicker.closest(".datepicker-inline").remove() : t.$datepicker.remove() }, _handleAlreadySelectedDates: function(t, e) { this.opts.range ? this.opts.toggleSelected ? this.removeDate(e) : 2 != this.selectedDates.length && this._trigger("clickCell", e) : this.opts.toggleSelected && this.removeDate(e), this.opts.toggleSelected || (this.lastSelectedDate = t, this.opts.timepicker && (this.timepicker._setTime(t), this.timepicker.update())) }, _onShowEvent: function(t) { this.visible || this.show() }, _onBlur: function() { !this.inFocus && this.visible && this.hide() }, _onMouseDownDatepicker: function(t) { this.inFocus = !0 }, _onMouseUpDatepicker: function(t) { this.inFocus = !1, t.originalEvent.inFocus = !0, t.originalEvent.timepickerFocus || this.$el.focus() }, _onKeyUpGeneral: function(t) { var e = this.$el.val(); e || this.clear() }, _onResize: function() { this.visible && this.setPosition() }, _onMouseUpBody: function(t) { t.originalEvent.inFocus || this.visible && !this.inFocus && this.hide() }, _onMouseUpEl: function(t) { t.originalEvent.inFocus = !0, setTimeout(this._onKeyUpGeneral.bind(this), 4) }, _onKeyDown: function(t) { var e = t.which; if (this._registerKey(e), e >= 37 && 40 >= e && (t.preventDefault(), this._focusNextCell(e)), 13 == e && this.focused) { if (this._getCell(this.focused).hasClass("-disabled-")) return; if (this.view != this.opts.minView) this.down(); else { var i = this._isSelected(this.focused, this.cellType); if (!i) return this.timepicker && (this.focused.setHours(this.timepicker.hours), this.focused.setMinutes(this.timepicker.minutes)), void this.selectDate(this.focused); this._handleAlreadySelectedDates(i, this.focused) } } 27 == e && this.hide() }, _onKeyUp: function(t) { var e = t.which; this._unRegisterKey(e) }, _onHotKey: function(t, e) { this._handleHotKey(e) }, _onMouseEnterCell: function(t) { var i = e(t.target).closest(".datepicker--cell"), s = this._getDateFromCell(i); this.silent = !0, this.focused && (this.focused = ""), i.addClass("-focus-"), this.focused = s, this.silent = !1, this.opts.range && 1 == this.selectedDates.length && (this.minRange = this.selectedDates[0], this.maxRange = "", n.less(this.minRange, this.focused) && (this.maxRange = this.minRange, this.minRange = ""), this.views[this.currentView]._update()) }, _onMouseLeaveCell: function(t) { var i = e(t.target).closest(".datepicker--cell"); i.removeClass("-focus-"), this.silent = !0, this.focused = "", this.silent = !1 }, _onTimeChange: function(t, e, i) { var s = new Date, a = this.selectedDates, n = !1; a.length && (n = !0, s = this.lastSelectedDate), s.setHours(e), s.setMinutes(i), n || this._getCell(s).hasClass("-disabled-") ? (this._setInputValue(), this.opts.onSelect && this._triggerOnChange()) : this.selectDate(s) }, _onClickCell: function(t, e) { this.timepicker && (e.setHours(this.timepicker.hours), e.setMinutes(this.timepicker.minutes)), this.selectDate(e) }, set focused(t) { if (!t && this.focused) { var e = this._getCell(this.focused); e.length && e.removeClass("-focus-") } this._focused = t, this.opts.range && 1 == this.selectedDates.length && (this.minRange = this.selectedDates[0], this.maxRange = "", n.less(this.minRange, this._focused) && (this.maxRange = this.minRange, this.minRange = "")), this.silent || (this.date = t) }, get focused() { return this._focused }, get parsedDate() { return n.getParsedDate(this.date) }, set date(t) { return t instanceof Date ? (this.currentDate = t, this.inited && !this.silent && (this.views[this.view]._render(), this.nav._render(), this.visible && this.elIsInput && this.setPosition()), t) : void 0 }, get date() { return this.currentDate }, set view(t) { return this.viewIndex = this.viewIndexes.indexOf(t), this.viewIndex < 0 ? void 0 : (this.prevView = this.currentView, this.currentView = t, this.inited && (this.views[t] ? this.views[t]._render() : this.views[t] = new e.fn.datepicker.Body(this, t, this.opts), this.views[this.prevView].hide(), this.views[t].show(), this.nav._render(), this.opts.onChangeView && this.opts.onChangeView(t), this.elIsInput && this.visible && this.setPosition()), t) }, get view() { return this.currentView }, get cellType() { return this.view.substring(0, this.view.length - 1) }, get minTime() { var t = n.getParsedDate(this.minDate); return new Date(t.year, t.month, t.date).getTime() }, get maxTime() { var t = n.getParsedDate(this.maxDate); return new Date(t.year, t.month, t.date).getTime() }, get curDecade() { return n.getDecade(this.date) } }, n.getDaysCount = function(t) { return new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate() }, n.getParsedDate = function(t) { return { year: t.getFullYear(), month: t.getMonth(), fullMonth: t.getMonth() + 1 < 10 ? "0" + (t.getMonth() + 1) : t.getMonth() + 1, date: t.getDate(), fullDate: t.getDate() < 10 ? "0" + t.getDate() : t.getDate(), day: t.getDay(), hours: t.getHours(), fullHours: t.getHours() < 10 ? "0" + t.getHours() : t.getHours(), minutes: t.getMinutes(), fullMinutes: t.getMinutes() < 10 ? "0" + t.getMinutes() : t.getMinutes() } }, n.getDecade = function(t) { var e = 10 * Math.floor(t.getFullYear() / 10); return [e, e + 9] }, n.template = function(t, e) { return t.replace(/#\{([\w]+)\}/g, function(t, i) { return e[i] || 0 === e[i] ? e[i] : void 0 }) }, n.isSame = function(t, e, i) { if (!t || !e) return !1; var s = n.getParsedDate(t), a = n.getParsedDate(e), h = i ? i : "day", o = { day: s.date == a.date && s.month == a.month && s.year == a.year, month: s.month == a.month && s.year == a.year, year: s.year == a.year }; return o[h] }, n.less = function(t, e, i) { return t && e ? e.getTime() < t.getTime() : !1 }, n.bigger = function(t, e, i) { return t && e ? e.getTime() > t.getTime() : !1 }, n.getLeadingZeroNum = function(t) { return parseInt(t) < 10 ? "0" + t : t }, n.resetTime = function(t) { return "object" == typeof t ? (t = n.getParsedDate(t), new Date(t.year, t.month, t.date)) : void 0 }, e.fn.datepicker = function(t) { return this.each(function() { if (e.data(this, o)) { var i = e.data(this, o); i.opts = e.extend(!0, i.opts, t), i.update() } else e.data(this, o, new m(this, t)) }) }, e.fn.datepicker.Constructor = m, e.fn.datepicker.language = { ru: { days: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"], daysShort: ["Вос", "Пон", "Вто", "Сре", "Чет", "Пят", "Суб"], daysMin: ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"], months: ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"], monthsShort: ["Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек"], today: "Сегодня", clear: "Очистить", dateFormat: "dd.mm.yyyy", timeFormat: "hh:ii", firstDay: 1 } }, e(function() { e(r).datepicker() }) }(), function() { var t = { days: '<div class="datepicker--days datepicker--body"><div class="datepicker--days-names"></div><div class="datepicker--cells datepicker--cells-days"></div></div>', months: '<div class="datepicker--months datepicker--body"><div class="datepicker--cells datepicker--cells-months"></div></div>', years: '<div class="datepicker--years datepicker--body"><div class="datepicker--cells datepicker--cells-years"></div></div>' }, s = e.fn.datepicker, a = s.Constructor; s.Body = function(t, i, s) { this.d = t, this.type = i, this.opts = s, this.$el = e(""), this.opts.onlyTimepicker || this.init() }, s.Body.prototype = { init: function() { this._buildBaseHtml(), this._render(), this._bindEvents() }, _bindEvents: function() { this.$el.on("click", ".datepicker--cell", e.proxy(this._onClickCell, this)) }, _buildBaseHtml: function() { this.$el = e(t[this.type]).appendTo(this.d.$content), this.$names = e(".datepicker--days-names", this.$el), this.$cells = e(".datepicker--cells", this.$el) }, _getDayNamesHtml: function(t, e, s, a) { return e = e != i ? e : t, s = s ? s : "", a = a != i ? a : 0, a > 7 ? s : 7 == e ? this._getDayNamesHtml(t, 0, s, ++a) : (s += '<div class="datepicker--day-name' + (this.d.isWeekend(e) ? " -weekend-" : "") + '">' + this.d.loc.daysMin[e] + "</div>", this._getDayNamesHtml(t, ++e, s, ++a)) }, _getCellContents: function(t, e) { var i = "datepicker--cell datepicker--cell-" + e, s = new Date, n = this.d, h = a.resetTime(n.minRange), o = a.resetTime(n.maxRange), r = n.opts, c = a.getParsedDate(t), d = {}, l = c.date; switch (e) { case "day": n.isWeekend(c.day) && (i += " -weekend-"), c.month != this.d.parsedDate.month && (i += " -other-month-", r.selectOtherMonths || (i += " -disabled-"), r.showOtherMonths || (l = "")); break; case "month": l = n.loc[n.opts.monthsField][c.month]; break; case "year": var u = n.curDecade; l = c.year, (c.year < u[0] || c.year > u[1]) && (i += " -other-decade-", r.selectOtherYears || (i += " -disabled-"), r.showOtherYears || (l = "")) } return r.onRenderCell && (d = r.onRenderCell(t, e) || {}, l = d.html ? d.html : l, i += d.classes ? " " + d.classes : ""), r.range && (a.isSame(h, t, e) && (i += " -range-from-"), a.isSame(o, t, e) && (i += " -range-to-"), 1 == n.selectedDates.length && n.focused ? ((a.bigger(h, t) && a.less(n.focused, t) || a.less(o, t) && a.bigger(n.focused, t)) && (i += " -in-range-"), a.less(o, t) && a.isSame(n.focused, t) && (i += " -range-from-"), a.bigger(h, t) && a.isSame(n.focused, t) && (i += " -range-to-")) : 2 == n.selectedDates.length && a.bigger(h, t) && a.less(o, t) && (i += " -in-range-")), a.isSame(s, t, e) && (i += " -current-"), n.focused && a.isSame(t, n.focused, e) && (i += " -focus-"), n._isSelected(t, e) && (i += " -selected-"), (!n._isInRange(t, e) || d.disabled) && (i += " -disabled-"), { html: l, classes: i } }, _getDaysHtml: function(t) { var e = a.getDaysCount(t), i = new Date(t.getFullYear(), t.getMonth(), 1).getDay(), s = new Date(t.getFullYear(), t.getMonth(), e).getDay(), n = i - this.d.loc.firstDay, h = 6 - s + this.d.loc.firstDay; n = 0 > n ? n + 7 : n, h = h > 6 ? h - 7 : h; for (var o, r, c = -n + 1, d = "", l = c, u = e + h; u >= l; l++) r = t.getFullYear(), o = t.getMonth(), d += this._getDayHtml(new Date(r, o, l)); return d }, _getDayHtml: function(t) { var e = this._getCellContents(t, "day"); return '<div class="' + e.classes + '" data-date="' + t.getDate() + '" data-month="' + t.getMonth() + '" data-year="' + t.getFullYear() + '">' + e.html + "</div>" }, _getMonthsHtml: function(t) { for (var e = "", i = a.getParsedDate(t), s = 0; 12 > s;) e += this._getMonthHtml(new Date(i.year, s)), s++; return e }, _getMonthHtml: function(t) { var e = this._getCellContents(t, "month"); return '<div class="' + e.classes + '" data-month="' + t.getMonth() + '">' + e.html + "</div>" }, _getYearsHtml: function(t) { var e = (a.getParsedDate(t), a.getDecade(t)), i = e[0] - 1, s = "", n = i; for (n; n <= e[1] + 1; n++) s += this._getYearHtml(new Date(n, 0)); return s }, _getYearHtml: function(t) { var e = this._getCellContents(t, "year"); return '<div class="' + e.classes + '" data-year="' + t.getFullYear() + '">' + e.html + "</div>" }, _renderTypes: { days: function() { var t = this._getDayNamesHtml(this.d.loc.firstDay), e = this._getDaysHtml(this.d.currentDate); this.$cells.html(e), this.$names.html(t) }, months: function() { var t = this._getMonthsHtml(this.d.currentDate); this.$cells.html(t) }, years: function() { var t = this._getYearsHtml(this.d.currentDate); this.$cells.html(t) } }, _render: function() { this.opts.onlyTimepicker || this._renderTypes[this.type].bind(this)() }, _update: function() { var t, i, s, a = e(".datepicker--cell", this.$cells), n = this; a.each(function(a, h) { i = e(this), s = n.d._getDateFromCell(e(this)), t = n._getCellContents(s, n.d.cellType), i.attr("class", t.classes) }) }, show: function() { this.opts.onlyTimepicker || (this.$el.addClass("active"), this.acitve = !0) }, hide: function() { this.$el.removeClass("active"), this.active = !1 }, _handleClick: function(t) { var e = t.data("date") || 1, i = t.data("month") || 0, s = t.data("year") || this.d.parsedDate.year, a = this.d; if (a.view != this.opts.minView) return void a.down(new Date(s, i, e)); var n = new Date(s, i, e), h = this.d._isSelected(n, this.d.cellType); return h ? void a._handleAlreadySelectedDates.bind(a, h, n)() : void a._trigger("clickCell", n) }, _onClickCell: function(t) { var i = e(t.target).closest(".datepicker--cell"); i.hasClass("-disabled-") || this._handleClick.bind(this)(i) } } }(), function() { var t = '<div class="datepicker--nav-action" data-action="prev">#{prevHtml}</div><div class="datepicker--nav-title">#{title}</div><div class="datepicker--nav-action" data-action="next">#{nextHtml}</div>', i = '<div class="datepicker--buttons"></div>', s = '<span class="datepicker--button" data-action="#{action}">#{label}</span>', a = e.fn.datepicker, n = a.Constructor; a.Navigation = function(t, e) { this.d = t, this.opts = e, this.$buttonsContainer = "", this.init() }, a.Navigation.prototype = { init: function() { this._buildBaseHtml(), this._bindEvents() }, _bindEvents: function() { this.d.$nav.on("click", ".datepicker--nav-action", e.proxy(this._onClickNavButton, this)), this.d.$nav.on("click", ".datepicker--nav-title", e.proxy(this._onClickNavTitle, this)), this.d.$datepicker.on("click", ".datepicker--button", e.proxy(this._onClickNavButton, this)) }, _buildBaseHtml: function() { this.opts.onlyTimepicker || this._render(), this._addButtonsIfNeed() }, _addButtonsIfNeed: function() { this.opts.todayButton && this._addButton("today"), this.opts.clearButton && this._addButton("clear") }, _render: function() { var i = this._getTitle(this.d.currentDate), s = n.template(t, e.extend({ title: i }, this.opts)); this.d.$nav.html(s), "years" == this.d.view && e(".datepicker--nav-title", this.d.$nav).addClass("-disabled-"), this.setNavStatus() }, _getTitle: function(t) { return this.d.formatDate(this.opts.navTitles[this.d.view], t) }, _addButton: function(t) { this.$buttonsContainer.length || this._addButtonsContainer(); var i = { action: t, label: this.d.loc[t] }, a = n.template(s, i); e("[data-action=" + t + "]", this.$buttonsContainer).length || this.$buttonsContainer.append(a) }, _addButtonsContainer: function() { this.d.$datepicker.append(i), this.$buttonsContainer = e(".datepicker--buttons", this.d.$datepicker) }, setNavStatus: function() { if ((this.opts.minDate || this.opts.maxDate) && this.opts.disableNavWhenOutOfRange) { var t = this.d.parsedDate, e = t.month, i = t.year, s = t.date; switch (this.d.view) { case "days": this.d._isInRange(new Date(i, e - 1, 1), "month") || this._disableNav("prev"), this.d._isInRange(new Date(i, e + 1, 1), "month") || this._disableNav("next"); break; case "months": this.d._isInRange(new Date(i - 1, e, s), "year") || this._disableNav("prev"), this.d._isInRange(new Date(i + 1, e, s), "year") || this._disableNav("next"); break; case "years": var a = n.getDecade(this.d.date); this.d._isInRange(new Date(a[0] - 1, 0, 1), "year") || this._disableNav("prev"), this.d._isInRange(new Date(a[1] + 1, 0, 1), "year") || this._disableNav("next") } } }, _disableNav: function(t) { e('[data-action="' + t + '"]', this.d.$nav).addClass("-disabled-") }, _activateNav: function(t) { e('[data-action="' + t + '"]', this.d.$nav).removeClass("-disabled-") }, _onClickNavButton: function(t) { var i = e(t.target).closest("[data-action]"), s = i.data("action"); this.d[s]() }, _onClickNavTitle: function(t) { return e(t.target).hasClass("-disabled-") ? void 0 : "days" == this.d.view ? this.d.view = "months" : void(this.d.view = "years") } } }(), function() { var t = '<div class="datepicker--time"><div class="datepicker--time-current"> <span class="datepicker--time-current-hours">#{hourVisible}</span> <span class="datepicker--time-current-colon">:</span> <span class="datepicker--time-current-minutes">#{minValue}</span></div><div class="datepicker--time-sliders"> <div class="datepicker--time-row"> <input type="range" name="hours" value="#{hourValue}" min="#{hourMin}" max="#{hourMax}" step="#{hourStep}"/> </div> <div class="datepicker--time-row"> <input type="range" name="minutes" value="#{minValue}" min="#{minMin}" max="#{minMax}" step="#{minStep}"/> </div></div></div>', i = e.fn.datepicker, s = i.Constructor; i.Timepicker = function(t, e) { this.d = t, this.opts = e, this.init() }, i.Timepicker.prototype = { init: function() { var t = "input"; this._setTime(this.d.date), this._buildHTML(), navigator.userAgent.match(/trident/gi) && (t = "change"), this.d.$el.on("selectDate", this._onSelectDate.bind(this)), this.$ranges.on(t, this._onChangeRange.bind(this)), this.$ranges.on("mouseup", this._onMouseUpRange.bind(this)), this.$ranges.on("mousemove focus ", this._onMouseEnterRange.bind(this)), this.$ranges.on("mouseout blur", this._onMouseOutRange.bind(this)) }, _setTime: function(t) { var e = s.getParsedDate(t); this._handleDate(t), this.hours = e.hours < this.minHours ? this.minHours : e.hours, this.minutes = e.minutes < this.minMinutes ? this.minMinutes : e.minutes }, _setMinTimeFromDate: function(t) { this.minHours = t.getHours(), this.minMinutes = t.getMinutes(), this.d.lastSelectedDate && this.d.lastSelectedDate.getHours() > t.getHours() && (this.minMinutes = this.opts.minMinutes) }, _setMaxTimeFromDate: function(t) { this.maxHours = t.getHours(), this.maxMinutes = t.getMinutes(), this.d.lastSelectedDate && this.d.lastSelectedDate.getHours() < t.getHours() && (this.maxMinutes = this.opts.maxMinutes) }, _setDefaultMinMaxTime: function() { var t = 23, e = 59, i = this.opts; this.minHours = i.minHours < 0 || i.minHours > t ? 0 : i.minHours, this.minMinutes = i.minMinutes < 0 || i.minMinutes > e ? 0 : i.minMinutes, this.maxHours = i.maxHours < 0 || i.maxHours > t ? t : i.maxHours, this.maxMinutes = i.maxMinutes < 0 || i.maxMinutes > e ? e : i.maxMinutes }, _validateHoursMinutes: function(t) { this.hours < this.minHours ? this.hours = this.minHours : this.hours > this.maxHours && (this.hours = this.maxHours), this.minutes < this.minMinutes ? this.minutes = this.minMinutes : this.minutes > this.maxMinutes && (this.minutes = this.maxMinutes) }, _buildHTML: function() { var i = s.getLeadingZeroNum, a = { hourMin: this.minHours, hourMax: i(this.maxHours), hourStep: this.opts.hoursStep, hourValue: this.hours, hourVisible: i(this.displayHours), minMin: this.minMinutes, minMax: i(this.maxMinutes), minStep: this.opts.minutesStep, minValue: i(this.minutes) }, n = s.template(t, a); this.$timepicker = e(n).appendTo(this.d.$datepicker), this.$ranges = e('[type="range"]', this.$timepicker), this.$hours = e('[name="hours"]', this.$timepicker), this.$minutes = e('[name="minutes"]', this.$timepicker), this.$hoursText = e(".datepicker--time-current-hours", this.$timepicker), this.$minutesText = e(".datepicker--time-current-minutes", this.$timepicker), this.d.ampm && (this.$ampm = e('<span class="datepicker--time-current-ampm">').appendTo(e(".datepicker--time-current", this.$timepicker)).html(this.dayPeriod), this.$timepicker.addClass("-am-pm-")) }, _updateCurrentTime: function() { var t = s.getLeadingZeroNum(this.displayHours), e = s.getLeadingZeroNum(this.minutes); this.$hoursText.html(t), this.$minutesText.html(e), this.d.ampm && this.$ampm.html(this.dayPeriod) }, _updateRanges: function() { this.$hours.attr({ min: this.minHours, max: this.maxHours }).val(this.hours), this.$minutes.attr({ min: this.minMinutes, max: this.maxMinutes }).val(this.minutes) }, _handleDate: function(t) { this._setDefaultMinMaxTime(), t && (s.isSame(t, this.d.opts.minDate) ? this._setMinTimeFromDate(this.d.opts.minDate) : s.isSame(t, this.d.opts.maxDate) && this._setMaxTimeFromDate(this.d.opts.maxDate)), this._validateHoursMinutes(t) }, update: function() { this._updateRanges(), this._updateCurrentTime() }, _getValidHoursFromDate: function(t, e) { var i = t, a = t; t instanceof Date && (i = s.getParsedDate(t), a = i.hours); var n = e || this.d.ampm, h = "am"; if (n) switch (!0) { case 0 == a: a = 12; break; case 12 == a: h = "pm"; break; case a > 11: a -= 12, h = "pm" } return { hours: a, dayPeriod: h } }, set hours(t) { this._hours = t; var e = this._getValidHoursFromDate(t); this.displayHours = e.hours, this.dayPeriod = e.dayPeriod }, get hours() { return this._hours }, _onChangeRange: function(t) { var i = e(t.target), s = i.attr("name"); this.d.timepickerIsActive = !0, this[s] = i.val(), this._updateCurrentTime(), this.d._trigger("timeChange", [this.hours, this.minutes]), this._handleDate(this.d.lastSelectedDate), this.update() }, _onSelectDate: function(t, e) { this._handleDate(e), this.update() }, _onMouseEnterRange: function(t) { var i = e(t.target).attr("name"); e(".datepicker--time-current-" + i, this.$timepicker).addClass("-focus-") }, _onMouseOutRange: function(t) { var i = e(t.target).attr("name"); this.d.inFocus || e(".datepicker--time-current-" + i, this.$timepicker).removeClass("-focus-") }, _onMouseUpRange: function(t) { this.d.timepickerIsActive = !1 } } }() ;(function ($) { $.fn.datepicker.language['en'] = { days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], daysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], daysMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], months: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], today: 'Today', clear: 'Clear', dateFormat: 'mm/dd/yyyy', timeFormat: 'hh:ii aa', firstDay: 0 }; })(jQuery); }(window, jQuery);
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings