! function(e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.Datepicker = t() }(this, function() { "use strict"; var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }, t = function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }, n = function() { function e(e, t) { for (var n = 0; n < t.length; n++) { var i = t[n]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(e, i.key, i) } } return function(t, n, i) { return n && e(t.prototype, n), i && e(t, i), t } }(), i = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]) } return e }; function a(e, t) { var n = (t || document).querySelectorAll(e); return Array.prototype.slice.call(n) } function r(e, t) { var n = e.matches || e.matchesSelector || e.webkitMatchesSelector || e.msMatchesSelector; return n && n.call(e, t) } function s(e, t, n) { for (var i = n && !n.contains(e); e && !i;) { if (r(e, t)) return e; i = n && !n.contains(e.parentNode), e = e.parentNode } return !1 } function o(e, t) { e.classList.add.apply(e.classList, t.split(" ").filter(Boolean)) } function l(e, t) { e.classList.remove.apply(e.classList, t.split(" ").filter(Boolean)) } function h(e, t, n) { void 0 === n && (n = ! function(e, t) { return t && e.classList.contains(t) }(e, t)), t && (n ? o(e, t) : l(e, t)) } function d(e, t) { return e instanceof Date && (t = e.getMonth(), e = e.getFullYear()), [31, function(e) { return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 }(e) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][t] } function u(e, t, n) { for (var i = 0; i < t.length; i++) { var a = e, r = t[i]; if ("year" == n ? (a = a.getFullYear(), r = r.getFullYear()) : "month" == n ? (a = a.getMonth(), r = r.getMonth()) : (a = a.getTime(), r = r.getTime()), a == r) return !0 } return !1 } function c(e, t) { return e.getTime() - t.getTime() } function p(e) { return !!e && e instanceof Date && !isNaN(e.getTime()) } function f(e) { return _(e, function(e) { return e && e.setHours(0, 0, 0, 0), e }) } function g(e, t) { var n = e = new Date(e); e > (t = new Date(t)) && (e = t, t = n, n = e); for (var i = [new Date(n)]; n < t;) n.setDate(n.getDate() + 1), i.push(new Date(n)); return i } function m(t) { if ("object" == (void 0 === t ? "undefined" : e(t)) && null !== t) { var n = Object.getPrototypeOf(t); return n === Object.prototype || null === n } return !1 } function v(t) { for (var n = Array.prototype.slice.call(arguments, 1), i = 0; i < n.length; i++) for (var a in n[i]) void 0 !== t[a] && "object" === e(n[i][a]) && null !== n[i][a] && void 0 === n[i][a].nodeName ? (n[i][a] instanceof Date && (t[a] = new Date(n[i][a].getTime())), Array.isArray(n[i][a]) ? t[a] = n[i][a].slice(0) : t[a] = v(t[a], n[i][a])) : t[a] = n[i][a]; return t } function _(e, t, n) { var i = [].concat(e).map(t, n); return 1 === i.length ? i[0] : i } function y(e, t) { var n = new Function("obj", "var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('" + e.replace(/[\r\t\n]/g, " ").split("<%").join("\t").replace(/((^|%>)[^\t]*)'/g, "$1\r").replace(/\t=(.*?)%>/g, "',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'") + "');}return p.join('');"); return t ? n(t) : n } var w = { inline: !1, multiple: !1, ranged: !1, time: !1, openOn: "first", min: !1, max: !1, within: !1, without: !1, yearRange: 5, weekStart: 0, defaultTime: { start: [0, 0], end: [12, 0] }, separator: ",", serialize: function(e) { var t = e.toLocaleDateString(); if (this.get("time")) { var n = e.toLocaleTimeString(); return t + "@" + (n = n.replace(/(\d{1,2}:\d{2}):00/, "$1")) } return t }, deserialize: function(e) { return new Date(e) }, toValue: !1, fromValue: !1, onInit: !1, onChange: !1, onRender: !1, i18n: { months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], weekdays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], time: ["Time", "Start", "End"] }, classNames: { node: "datepicker", wrapper: "datepicker__wrapper", inline: "is-inline", selected: "is-selected", disabled: "is-disabled", highlighted: "is-highlighted", otherMonth: "is-otherMonth", weekend: "is-weekend", today: "is-today" }, templates: { container: ['
', "<%= renderHeader() %>", "<%= renderTimepicker() %>", "<%= renderCalendar() %>", "
"].join(""), header: ['
', '" data-prev>‹', '<%= renderMonthSelect() %>', '<%= renderYearSelect() %>', '" data-next>›', "
"].join(""), timepicker: ['
', '<%= label %>', '<%= renderHourSelect() %>:', '<%= renderMinuteSelect() %>', '<%= renderPeriodSelect() %>', "
"].join(""), calendar: ['', "", "", "<% weekdays.forEach(function(name) { %>", "", "<% }); %>", "", "", "", "<% days.forEach(function(day, i) { %>", '<%= (i % 7 == 0) ? "" : "" %>', "<%= renderDay(day) %>", '<%= (i % 7 == 6) ? "" : "" %>', "<% }); %>", "", "
<%= name %>
"].join(""), day: ['<% classNames.push("datepicker__day"); %>', '" data-day="<%= timestamp %>">
', '<%= daynum %>', "
"].join("") } }; var b = function() { function e(n, i) { var r = this; if (t(this, e), "string" == typeof n) { if ("#" != n.substr(0, 1)) return a(n).map(function(e) { return new r.constructor(e, i) }); n = document.getElementById(n.substr(1)) } n || (n = document.createElement("input")), "input" !== n.tagName.toLowerCase() || /input|hidden/i.test(n.type) || (n.type = "text"), this._initDOM(n), this._initOptions(i), this._initEvents(), this.setValue(n.value || n.dataset.value || ""), this._opts.onInit && this._opts.onInit(n) } return n(e, [{ key: "_initOptions", value: function() { var e = this, t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this._opts = {}; var n = function(e, t) { var n = t.classNames.inline; return this.node && (h(this.node, n, e), this.wrapper.style.position = e ? "" : "absolute", this.wrapper.style.display = e ? "" : "none"), this._isOpen = e, e }.bind(this), i = function(e, t) { var n = t.deserialize; return !!p(e = !!e && _(e, n, this)) && e }.bind(this), a = function(e, t) { var n = t.deserialize; return e.length && (e = f(_(e, n, this)), e = [].concat(e).filter(p)), !!e.length && e }.bind(this), r = function(e, t) { var n = t.deserialize; if ("string" != typeof e || /^(first|last|today)$/.test(e) || p(e = n.call(this, e)) || (e = new Date), !this._month) { var i = e; "string" != typeof i && p(i) || (i = new Date), (i = f(new Date(i.getTime()))).setDate(1), this._month = i } return e }.bind(this), s = function(e) { return Math.min(Math.max(e, 0), 6) }.bind(this), o = function(e, t) { return m(e) ? v({}, e, t.defaultTime) : { start: e.slice(0), end: e.slice(0) } }.bind(this), l = function(e, t) { var n = e.node, i = e.inline, a = e.wrapper, r = t.inline; if (this.node) for (var s in e) switch (s) { case "node": case "inline": this.node.className = n + (r ? " " + i : ""); break; case "wrapper": this.wrapper.className = a } return e }.bind(this), d = function(e) { return "function" == typeof e && e.bind(this) }.bind(this), u = function(e) { for (var t in e) "select" !== t && (this._renderers[t] = y(e[t])); return e }.bind(this); this._set = { openOn: r, inline: n, weekstart: s, min: i, max: i, within: a, without: a, defaultTime: o, classNames: l, templates: u }; ["serialize", "deserialize", "onInit", "onChange", "onRender", "setValue", "getValue"].forEach(function(t) { return e._set[t] = d }), this._renderers = { select: y(['<%= text %>', '", ""].join("")) }, this.set(v({}, this.constructor.defaults, function(e) { var t = function(e) { return e.trim() }, n = {}; if (!e || !e.dataset) return n; for (var i in e.dataset) { var a = e.dataset[i]; /true|false/.test(a.toLowerCase()) ? a = "true" == a.toLowerCase() : "[" == a[0] && "]" == a.substr(-1) ? a = _(a.substr(1, a.length - 2).split(","), t) : /^\d*$/.test(a) && (a = parseInt(a, 10)), n[i] = a } return n }(this._el), t)) } }, { key: "_initDOM", value: function(e) { this.node || (this._el = e, this.node = document.createElement("div"), this.node.style.position = "relative", this.wrapper = document.createElement("div"), this.wrapper.style.zIndex = 9999, e.parentNode && e.parentNode.insertBefore(this.node, e), this.node.appendChild(e), this.node.appendChild(this.wrapper)) } }, { key: "_initEvents", value: function() { var e = this; this._isInitialized || (this._highlighted = [], this._onmousedown = this._onmousedown.bind(this), this._onmousemove = this._onmousemove.bind(this), this._onmouseup = this._onmouseup.bind(this), this._onclick = this._onclick.bind(this), "input" !== this._el.tagName.toLowerCase() ? this._el.addEventListener("click", function() { return e.toggle() }) : this._el.addEventListener("focus", function() { return e.open() }), document.addEventListener("mousedown", function(t) { e.node.contains(t.target) || e.hide() }), this.node.onselectstart = function() { return !1 }, this.node.addEventListener("mousedown", this._onmousedown), this.node.addEventListener("mousemove", this._onmousemove), this.node.addEventListener("mouseup", this._onmouseup), this.node.addEventListener("click", this._onclick), this._isInitialized = !0) } }, { key: "_onmousedown", value: function(e) { var t = this, n = this._opts, i = n.ranged, r = n.multiple, d = n.classNames, u = d.selected, c = d.highlighted, p = s(e.target, "[data-day]", this.wrapper), f = p ? parseInt(p.dataset.day, 10) : null; f && (i && this._dragStart ? this._onmousemove(e) : (this._deselect = !i && this.hasDate(new Date(f)), this._highlighted = [f], this._dragStart = f, r || a("[data-day]." + u, this.wrapper).forEach(function(e) { l(e, u) }), a('[data-day="' + f + '"]', this.wrapper).forEach(function(e) { h(e, u, !t._deselect), o(e, c) }))) } }, { key: "_onmousemove", value: function(e) { var t = this, n = this._opts, i = n.ranged, r = n.multiple, d = n.classNames, u = d.selected, c = d.highlighted; if ((i || r) && 1 === e.buttons) { var p = s(e.target, "[data-day]", this.wrapper), f = p ? parseInt(p.dataset.day, 10) : null; f && this._dragStart && (this._highlighted = g(this._dragStart, f).map(function(e) { return e.getTime() }), this._isDragging = f !== this._dragStart, a("[data-day]." + c, this.wrapper).forEach(function(e) { var n = new Date(parseInt(e.dataset.day, 10)); h(e, u, !i && t.hasDate(n)), l(e, c) }), this._highlighted.forEach(function(e) { a('[data-day="' + e + '"]', t.wrapper).forEach(function(e) { h(e, u, !t._deselect), o(e, c) }) })) } } }, { key: "_onmouseup", value: function(e) { var t = this._opts, n = t.ranged, i = t.multiple, r = t.classNames.highlighted; if (a("[data-day]." + r, this.wrapper).forEach(function(e) { l(e, r) }), this._dragStart && s(e.target, "[data-day]", this.node)) { var o = this._highlighted.map(function(e) { return new Date(e) }); n || !i ? this.setDate(o) : this.toggleDate(o, !this._deselect), this.render(), i || n && !this._isDragging || this.hide() } n && !this._isDragging || (this._highlighted = [], this._dragStart = null), this._isDragging = !1 } }, { key: "_onclick", value: function(e) { var t = this, n = e.target; n.hasAttribute("data-prev") ? this.prev(n.dataset.prev) : n.hasAttribute("data-next") ? this.next(n.dataset.next) : n.hasAttribute("data-year") && !n.onchange ? n.onchange = function() { var e = n.dataset.year, i = t._month.getFullYear(); t._month.setFullYear(parseInt(n.value) - (e - i)), t.render() } : n.hasAttribute("data-month") && !n.onchange ? n.onchange = function() { t._month.setMonth(n.value - n.dataset.index), t.render() } : n.hasAttribute("data-hour") && !n.onchange ? n.onchange = function() { t.setTime(n.dataset.hour, n.value), n.parentNode.firstChild.textContent = n.selectedOptions[0].textContent } : n.hasAttribute("data-minute") && !n.onchange ? n.onchange = function() { t.setTime(n.dataset.minute, null, n.value), n.parentNode.firstChild.textContent = n.selectedOptions[0].textContent } : n.hasAttribute("data-period") && !n.onchange && (n.onchange = function() { var e = n.dataset.period, i = "am" === n.value ? -12 : 12; a('[data-hour="' + e + '"] option', t.wrapper).forEach(function(e) { e.value = parseInt(e.value) + i }), t.setTime(e, (t._time ? t._time[e][0] : 0) + i), n.parentNode.firstChild.textContent = n.selectedOptions[0].textContent }) } }, { key: "set", value: function(e, t) { if (e) { if (m(e)) { for (var n in this._noRender = !0, e.serialize && (this.set("serialize", e.serialize), delete e.serialize), e.deserialize && (this.set("deserialize", e.deserialize), delete e.deserialize), e) this.set(n, e[n]); this._noRender = !1, t = this._opts } else { var i = v({}, this.constructor.defaults, this._opts); e in this._set && (t = this._set[e](t, i)), m(t) && (t = v({}, i[e], t)), this._opts[e] = t } return this._isOpen && this.wrapper && this.render(), t } } }, { key: "get", value: function(e) { var t = this; if (arguments.length > 1) return [].concat(Array.prototype.slice.call(arguments)).reduce(function(e, n) { return e[n] = t.get(n), e }, {}); var n = this._opts[e]; return m(n) && (n = v({}, n)), n } }, { key: "open", value: function(e) { var t = [].concat(this.getDate()); "string" == typeof(e = e || this._opts.openOn || this._month) && ("first" === (e = e.toLowerCase()) && t.length ? e = t[0] : "last" === e && t.length ? e = t[t.length - 1] : "today" !== e && (e = this._opts.deserialize(e))), p(e) || (e = new Date), this.setTime(!!this._selected.length), this.goToDate(e), this.render(), this.show() } }, { key: "show", value: function() { if (!this._opts.inline) { this.wrapper.style.display = "block"; var e = this.node.getBoundingClientRect(), t = this._el.getBoundingClientRect(), n = t.bottom - e.top + "px", i = e.bottom - t.top + "px"; this.wrapper.style.top = n, this.wrapper.style.right = "", this.wrapper.style.bottom = "", this.wrapper.style.left = 0; var a = this.wrapper.getBoundingClientRect(), r = a.right > window.innerWidth, s = a.bottom > window.innerHeight; this.wrapper.style.top = s ? "" : n, this.wrapper.style.right = r ? 0 : "", this.wrapper.style.bottom = s ? i : "", this.wrapper.style.left = r ? "" : 0; var o = (a = this.wrapper.getBoundingClientRect()).right >= a.width, l = a.bottom > a.height; this.wrapper.style.top = s && l ? "" : n, this.wrapper.style.right = r && o ? 0 : "", this.wrapper.style.bottom = s && l ? i : "", this.wrapper.style.left = r && o ? "" : 0, this._isOpen = !0 } } }, { key: "hide", value: function() { this._opts.inline || (this.wrapper.style.display = "none", this._isOpen = !1) } }, { key: "toggle", value: function() { this._isOpen ? this.hide() : this.open() } }, { key: "next", value: function(e) { var t = new Date(this._month.getTime()); e = Math.max(e || 1, 1), t.setMonth(t.getMonth() + e), this.goToDate(t) } }, { key: "prev", value: function(e) { var t = new Date(this._month.getTime()); e = Math.max(e || 1, 1), t.setMonth(t.getMonth() - e), this.goToDate(t) } }, { key: "goToDate", value: function(e) { (e = f(this._opts.deserialize(e))).setDate(1), this._month = e, this._isOpen && this.render(), this._opts.onNavigate && this._opts.onNavigate(e) } }, { key: "hasDate", value: function(e) { return e = f(p(e) ? e : this._opts.deserialize(e)), !!this._selected && this._selected.indexOf(e.getTime()) > -1 } }, { key: "addDate", value: function(e) { this.toggleDate(e, !0) } }, { key: "removeDate", value: function(e) { this.toggleDate(e, !1) } }, { key: "toggleDate", value: function(e, t) { var n = this, i = this._opts, a = i.ranged, r = i.multiple, s = i.deserialize, o = [].concat(e); o = (o = o.map(function(e) { return p(e) ? e : s(e) })).filter(function(e) { return p(e) && n.dateAllowed(e) }), a ? o = (o = o.concat(this.getDate()).sort(c)).length ? g(o[0], o.pop()) : [] : r || (o = o.slice(0, 1)), o.map(function(e) { return f(e).getTime() }).forEach(function(e) { var i = n._selected.indexOf(e), s = i > -1; s || !1 === t ? s && !0 !== t && n._selected.splice(i, 1) : a || r ? n._selected.push(e) : n._selected = [e] }), this._update() } }, { key: "_update", value: function() { var e = this._opts.onChange; "input" === this._el.nodeName.toLowerCase() ? this._el.value = this.getValue() : this._el.dataset.value = this.getValue(), e && e(this.getDate()) } }, { key: "getDate", value: function() { var e = this._opts, t = e.ranged, n = e.multiple, i = e.time, a = this._time ? this._time.start : [0, 0]; if (this._selected = (this._selected || []).sort(), n || t) { var r = this._selected.map(function(e) { return new Date(e) }); if (i && r.length && (r[0].setHours(a[0], a[1]), r.length > 1)) { var s = this._time ? this._time.end : [0, 0]; r[r.length - 1].setHours(s[0], s[1]) } return r } if (this._selected.length) { var o = new Date(this._selected[0]); return o.setHours(a[0], a[1]), o } } }, { key: "setDate", value: function(e) { this._selected = [], this.addDate(e) } }, { key: "setTime", value: function(e, t, n) { var i = this._opts, a = i.time, r = i.defaultTime; a && (!0 !== e && this._time || (this._time = v({}, r)), e && !0 !== e && ("number" == typeof e && (n = t, t = e, e = "start"), e = "end" === e ? e : "start", t = !!t && parseInt(t, 10), n = !!n && parseInt(n, 10), t && !isNaN(t) && (this._time[e][0] = t), n && !isNaN(n) && (this._time[e][1] = n)), this._update()) } }, { key: "getValue", value: function() { var e = this._opts, t = e.ranged, n = e.separator, i = e.serialize, a = e.toValue, r = [].concat(this.getDate() || []); t && r.length > 1 && (r = [r[0], r.pop()]); var s = r.map(i).join(n); return a && (s = a(s, r)), s } }, { key: "setValue", value: function(e) { var t = this._opts, n = t.ranged, i = t.time, a = t.separator, r = t.serialize, s = t.fromValue; this._selected = []; var o = s ? s(e) : e.split(a).filter(Boolean).map(r); if (this.addDate(o), i && o.length) { var l = o.sort(c)[0]; if (this.setTime("start", l.getHours(), l.getMinutes()), "ranged" === i || n) { var h = o[o.length - 1]; this.setTime("end", h.getHours(), h.getMinutes()) } } } }, { key: "dateAllowed", value: function(e, t) { var n = this._opts, i = n.min, a = n.max, r = n.within, s = n.without, o = n.deserialize, l = void 0, h = l = !0; return e = f(p(e) ? e : o(e)), "month" == t ? (h = !i || e.getMonth() >= i.getMonth(), l = !a || e.getMonth() <= a.getMonth()) : "year" == t ? (h = !i || e.getFullYear() >= i.getFullYear(), l = !a || e.getFullYear() <= a.getFullYear()) : (h = !i || e >= i, l = !a || e <= a), h && l && (!s || !u(e, s, t)) && (!r || u(e, r, t)) } }, { key: "render", value: function() { var e = this, t = this._opts, n = t.ranged, a = t.time, r = t.onRender; if (!this._noRender && this._renderers) { var s = {}, o = function(t) { return s[t] || (s[t] = e.getData(t)) }; this.wrapper.innerHTML = this._renderers.container({ renderHeader: function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; return e._renderHeader(o(t)) }, renderCalendar: function() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, n = o(t); return e._renderers.calendar(i({}, n, { renderHeader: function() { return e._renderHeader(n) }, renderDay: function(t) { return e._renderers.day(t) } })) }, renderTimepicker: function() { var t = ""; return a && (t = e._renderTimepicker("start"), ("ranged" === a || n) && (t += e._renderTimepicker("end"))), t } }), r && r(this.wrapper.firstChild) } } }, { key: "getData", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, t = this._opts, n = t.i18n, i = t.weekStart, a = t.serialize, r = t.min, s = t.max, o = t.classNames, l = o.selected, h = o.disabled, u = o.otherMonth, c = o.weekend, p = o.today, g = new Date(this._month.getTime()); g.setMonth(g.getMonth() + e); var m = g.getMonth(), v = g.getFullYear(), _ = new Date(g.getTime()); _.setMonth(_.getMonth() + 1), _.setDate(1); var y = new Date(g.getTime()); y.setMonth(y.getMonth() - 1), y.setDate(d(y)); for (var w = [], b = g.getDay() - i; b < 0;) b += 7; for (var k = d(v, m) + b; k % 7;) k += 1; for (var D = f(new Date), x = 0; x < k; x++) { var M = new Date(v, m, x - b + 1), T = M.getMonth(), N = M.getDay(), S = this.hasDate(M), C = !this.dateAllowed(M), E = T < m, z = T > m, O = !E && !z, j = 0 === N || 6 === N, A = M.getTime() === D.getTime(), L = []; S && L.push(l), C && L.push(h), O || L.push(u), j && L.push(c), A && L.push(p), w.push({ _date: M, date: a(M), daynum: M.getDate(), timestamp: M.getTime(), weekday: n.weekdays[N], isSelected: S, isDisabled: C, isPrevMonth: E, isNextMonth: z, isThisMonth: O, isWeekend: j, isToday: A, classNames: L }) } return { _date: g, index: e, year: v, month: n.months[m], days: w, weekdays: n.weekdays, hasNext: !s || _ <= s, hasPrev: !r || y >= r } } }, { key: "_renderHeader", value: function(e) { var t = this, n = this._opts, a = n.yearRange, r = n.i18n, s = e._date, o = e.index, l = e.year, h = s.getMonth(); return this._renderers.header(i({}, e, { renderMonthSelect: function() { for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o, n = new Date(s.getTime()), i = [], a = 0; a < 12; a++) n.setMonth(a), i.push({ text: r.months[a], disabled: !t.dateAllowed(n, "month"), selected: a === h, value: a }); return t._renderers.select({ index: e, type: "month", text: r.months[h], value: h, options: i }) }, renderYearSelect: function() { for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : o, n = new Date(s.getTime()), i = l - a, r = l + a, h = []; i <= r; i++) n.setFullYear(i), h.push({ disabled: !t.dateAllowed(n, "year"), selected: i === l, value: i, text: i }); return t._renderers.select({ index: e, type: "year", text: l, value: l, options: h }) } })) } }, { key: "_renderTimepicker", value: function(e) { var t = this, n = this._opts, i = n.ranged, a = n.time, r = n.i18n; if (a) { this._time || this.setTime(!0); var s = this._time[e], o = r.time[0]; return ("ranged" === a || i) && (o = r.time["start" === e ? 1 : 2]), this._renderers.timepicker({ label: o, renderHourSelect: function() { for (var n = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], i = [], a = s[0], r = n ? 24 : 12, o = 0; o < r; o++) i.push({ text: n || o ? o : "12", selected: a === o, disabled: !1, value: o }); !n && a >= 12 ? i.forEach(function(e) { return e.selected = (e.value += 12) === a }) : n || i.push(i.shift()); var l = i.filter(function(e) { return e.selected })[0].text; return t._renderers.select({ index: 0, type: "hour", value: e, options: i, text: l }) }, renderMinuteSelect: function() { for (var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 15, i = [], a = 0; a < 60; a += n) i.push({ text: a < 10 ? "0" + a : a, selected: s[1] === a, disabled: !1, value: a }); var r = i.filter(function(e) { return e.selected })[0].text; return t._renderers.select({ index: null, type: "minute", value: e, options: i, text: r }) }, renderPeriodSelect: function() { return t._renderers.select({ index: null, type: "period", text: s[0] >= 12 ? "PM" : "AM", value: e, options: [{ text: "AM", value: "am", selected: s[0] < 12 }, { text: "PM", value: "pm", selected: s[0] >= 12 }] }) } }) } } }]), e }(); return b.defaults = w, b });