/*! * Date picker for pickadate.js v3.6.4 * http://amsul.github.io/pickadate.js/date.htm */ !(function (a) { "function" == typeof define && define.amd ? define(["./picker", "jquery"], a) : "object" == typeof exports ? (module.exports = a(require("./picker.js"), require("jquery"))) : a(Picker, jQuery); })(function (a, b) { function c(a, b) { var c = this, d = a.$node[0], e = d.value, f = a.$node.data("value"), g = f || e, h = f ? b.formatSubmit : b.format, i = function () { return d.currentStyle ? "rtl" == d.currentStyle.direction : "rtl" == getComputedStyle(a.$root[0]).direction; }; (c.settings = b), (c.$node = a.$node), (c.queue = { min: "measure create", max: "measure create", now: "now create", select: "parse create validate", highlight: "parse navigate create validate", view: "parse create validate viewset", disable: "deactivate", enable: "activate", }), (c.item = {}), (c.item.clear = null), (c.item.disable = (b.disable || []).slice(0)), (c.item.enable = -(function (a) { return !0 === a[0] ? a.shift() : -1; })(c.item.disable)), c.set("min", b.min).set("max", b.max).set("now"), g ? c.set("select", g, { format: h, defaultValue: !0 }) : c.set("select", null).set("highlight", c.item.now), (c.key = { 40: 7, 38: -7, 39: function () { return i() ? -1 : 1; }, 37: function () { return i() ? 1 : -1; }, go: function (a) { var b = c.item.highlight, d = new Date(b.year, b.month, b.date + a); c.set("highlight", d, { interval: a }), this.render(); }, }), a .on( "render", function () { a.$root.find("." + b.klass.selectMonth).on("change", function () { var c = this.value; c && (a.set("highlight", [ a.get("view").year, c, a.get("highlight").date, ]), a.$root.find("." + b.klass.selectMonth).trigger("focus")); }), a.$root.find("." + b.klass.selectYear).on("change", function () { var c = this.value; c && (a.set("highlight", [ c, a.get("view").month, a.get("highlight").date, ]), a.$root.find("." + b.klass.selectYear).trigger("focus")); }); }, 1 ) .on( "open", function () { var d = ""; c.disabled(c.get("now")) && (d = ":not(." + b.klass.buttonToday + ")"), a.$root.find("button" + d + ", select").attr("disabled", !1); }, 1 ) .on( "close", function () { a.$root.find("button, select").attr("disabled", !0); }, 1 ); } var d = 7, e = a._; (c.prototype.set = function (a, b, c) { var d = this, e = d.item; return null === b ? ("clear" == a && (a = "select"), (e[a] = b), d) : ((e["enable" == a ? "disable" : "flip" == a ? "enable" : a] = d.queue[a] .split(" ") .map(function (e) { return (b = d[e](a, b, c)); }) .pop()), "select" == a ? d.set("highlight", e.select, c) : "highlight" == a ? d.set("view", e.highlight, c) : a.match(/^(flip|min|max|disable|enable)$/) && (e.select && d.disabled(e.select) && d.set("select", e.select, c), e.highlight && d.disabled(e.highlight) && d.set("highlight", e.highlight, c)), d); }), (c.prototype.get = function (a) { return this.item[a]; }), (c.prototype.create = function (a, c, d) { var f, g = this; return ( (c = void 0 === c ? a : c), c == -1 / 0 || c == 1 / 0 ? (f = c) : b.isPlainObject(c) && e.isInteger(c.pick) ? (c = c.obj) : b.isArray(c) ? ((c = new Date(c[0], c[1], c[2])), (c = e.isDate(c) ? c : g.create().obj)) : (c = e.isInteger(c) || e.isDate(c) ? g.normalize(new Date(c), d) : g.now(a, c, d)), { year: f || c.getFullYear(), month: f || c.getMonth(), date: f || c.getDate(), day: f || c.getDay(), obj: f || c, pick: f || c.getTime(), } ); }), (c.prototype.createRange = function (a, c) { var d = this, f = function (a) { return !0 === a || b.isArray(a) || e.isDate(a) ? d.create(a) : a; }; return ( e.isInteger(a) || (a = f(a)), e.isInteger(c) || (c = f(c)), e.isInteger(a) && b.isPlainObject(c) ? (a = [c.year, c.month, c.date + a]) : e.isInteger(c) && b.isPlainObject(a) && (c = [a.year, a.month, a.date + c]), { from: f(a), to: f(c) } ); }), (c.prototype.withinRange = function (a, b) { return ( (a = this.createRange(a.from, a.to)), b.pick >= a.from.pick && b.pick <= a.to.pick ); }), (c.prototype.overlapRanges = function (a, b) { var c = this; return ( (a = c.createRange(a.from, a.to)), (b = c.createRange(b.from, b.to)), c.withinRange(a, b.from) || c.withinRange(a, b.to) || c.withinRange(b, a.from) || c.withinRange(b, a.to) ); }), (c.prototype.now = function (a, b, c) { return ( (b = new Date()), c && c.rel && b.setDate(b.getDate() + c.rel), this.normalize(b, c) ); }), (c.prototype.navigate = function (a, c, d) { var e, f, g, h, i = b.isArray(c), j = b.isPlainObject(c), k = this.item.view; if (i || j) { for ( j ? ((f = c.year), (g = c.month), (h = c.date)) : ((f = +c[0]), (g = +c[1]), (h = +c[2])), d && d.nav && k && k.month !== g && ((f = k.year), (g = k.month)), e = new Date(f, g + (d && d.nav ? d.nav : 0), 1), f = e.getFullYear(), g = e.getMonth(); new Date(f, g, h).getMonth() !== g; ) h -= 1; c = [f, g, h]; } return c; }), (c.prototype.normalize = function (a) { return a.setHours(0, 0, 0, 0), a; }), (c.prototype.measure = function (a, b) { var c = this; return ( e.isInteger(b) ? (b = c.now(a, b, { rel: b })) : b ? "string" == typeof b && (b = c.parse(a, b)) : (b = "min" == a ? -1 / 0 : 1 / 0), b ); }), (c.prototype.viewset = function (a, b) { return this.create([b.year, b.month, 1]); }), (c.prototype.validate = function (a, c, d) { var f, g, h, i, j = this, k = c, l = d && d.interval ? d.interval : 1, m = -1 === j.item.enable, n = j.item.min, o = j.item.max, p = m && j.item.disable.filter(function (a) { if (b.isArray(a)) { var d = j.create(a).pick; d < c.pick ? (f = !0) : d > c.pick && (g = !0); } return e.isInteger(a); }).length; if ( (!d || (!d.nav && !d.defaultValue)) && ((!m && j.disabled(c)) || (m && j.disabled(c) && (p || f || g)) || (!m && (c.pick <= n.pick || c.pick >= o.pick))) ) for ( m && !p && ((!g && l > 0) || (!f && l < 0)) && (l *= -1); j.disabled(c) && (Math.abs(l) > 1 && (c.month < k.month || c.month > k.month) && ((c = k), (l = l > 0 ? 1 : -1)), c.pick <= n.pick ? ((h = !0), (l = 1), (c = j.create([ n.year, n.month, n.date + (c.pick === n.pick ? 0 : -1), ]))) : c.pick >= o.pick && ((i = !0), (l = -1), (c = j.create([ o.year, o.month, o.date + (c.pick === o.pick ? 0 : 1), ]))), !h || !i); ) c = j.create([c.year, c.month, c.date + l]); return c; }), (c.prototype.disabled = function (a) { var c = this, d = c.item.disable.filter(function (d) { return e.isInteger(d) ? a.day === (c.settings.firstDay ? d : d - 1) % 7 : b.isArray(d) || e.isDate(d) ? a.pick === c.create(d).pick : b.isPlainObject(d) ? c.withinRange(d, a) : void 0; }); return ( (d = d.length && !d.filter(function (a) { return ( (b.isArray(a) && "inverted" == a[3]) || (b.isPlainObject(a) && a.inverted) ); }).length), -1 === c.item.enable ? !d : d || a.pick < c.item.min.pick || a.pick > c.item.max.pick ); }), (c.prototype.parse = function (a, b, c) { var d = this, f = {}; return b && "string" == typeof b ? ((c && c.format) || ((c = c || {}), (c.format = d.settings.format)), d.formats.toArray(c.format).map(function (a) { var c = d.formats[a], g = c ? e.trigger(c, d, [b, f]) : a.replace(/^!/, "").length; c && (f[a] = b.substr(0, g)), (b = b.substr(g)); }), [f.yyyy || f.yy, +(f.mm || f.m) - 1, f.dd || f.d]) : b; }), (c.prototype.formats = (function () { function a(a, b, c) { var d = a.match(/[^\x00-\x7F]+|\w+/)[0]; return c.mm || c.m || (c.m = b.indexOf(d) + 1), d.length; } function b(a) { return a.match(/\w+/)[0].length; } return { d: function (a, b) { return a ? e.digits(a) : b.date; }, dd: function (a, b) { return a ? 2 : e.lead(b.date); }, ddd: function (a, c) { return a ? b(a) : this.settings.weekdaysShort[c.day]; }, dddd: function (a, c) { return a ? b(a) : this.settings.weekdaysFull[c.day]; }, m: function (a, b) { return a ? e.digits(a) : b.month + 1; }, mm: function (a, b) { return a ? 2 : e.lead(b.month + 1); }, mmm: function (b, c) { var d = this.settings.monthsShort; return b ? a(b, d, c) : d[c.month]; }, mmmm: function (b, c) { var d = this.settings.monthsShort; return b ? a(b, d, c) : d[c.month]; }, yy: function (a, b) { return a ? 2 : ("" + b.year).slice(2); }, yyyy: function (a, b) { return a ? 4 : b.year; }, toArray: function (a) { return a.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g); }, toString: function (a, b) { var c = this; return c.formats .toArray(a) .map(function (a) { return e.trigger(c.formats[a], c, [0, b]) || a.replace(/^!/, ""); }) .join(""); }, }; })()), (c.prototype.isDateExact = function (a, c) { var d = this; return (e.isInteger(a) && e.isInteger(c)) || ("boolean" == typeof a && "boolean" == typeof c) ? a === c : (e.isDate(a) || b.isArray(a)) && (e.isDate(c) || b.isArray(c)) ? d.create(a).pick === d.create(c).pick : !(!b.isPlainObject(a) || !b.isPlainObject(c)) && d.isDateExact(a.from, c.from) && d.isDateExact(a.to, c.to); }), (c.prototype.isDateOverlap = function (a, c) { var d = this, f = d.settings.firstDay ? 1 : 0; return e.isInteger(a) && (e.isDate(c) || b.isArray(c)) ? (a = (a % 7) + f) === d.create(c).day + 1 : e.isInteger(c) && (e.isDate(a) || b.isArray(a)) ? (c = (c % 7) + f) === d.create(a).day + 1 : !(!b.isPlainObject(a) || !b.isPlainObject(c)) && d.overlapRanges(a, c); }), (c.prototype.flipEnable = function (a) { var b = this.item; b.enable = a || (-1 == b.enable ? 1 : -1); }), (c.prototype.deactivate = function (a, c) { var d = this, f = d.item.disable.slice(0); return ( "flip" == c ? d.flipEnable() : !1 === c ? (d.flipEnable(1), (f = [])) : !0 === c ? (d.flipEnable(-1), (f = [])) : c.map(function (a) { for (var c, g = 0; g < f.length; g += 1) if (d.isDateExact(a, f[g])) { c = !0; break; } c || ((e.isInteger(a) || e.isDate(a) || b.isArray(a) || (b.isPlainObject(a) && a.from && a.to)) && f.push(a)); }), f ); }), (c.prototype.activate = function (a, c) { var d = this, f = d.item.disable, g = f.length; return ( "flip" == c ? d.flipEnable() : !0 === c ? (d.flipEnable(1), (f = [])) : !1 === c ? (d.flipEnable(-1), (f = [])) : c.map(function (a) { var c, h, i, j; for (i = 0; i < g; i += 1) { if (((h = f[i]), d.isDateExact(h, a))) { (c = f[i] = null), (j = !0); break; } if (d.isDateOverlap(h, a)) { b.isPlainObject(a) ? ((a.inverted = !0), (c = a)) : b.isArray(a) ? ((c = a), c[3] || c.push("inverted")) : e.isDate(a) && (c = [ a.getFullYear(), a.getMonth(), a.getDate(), "inverted", ]); break; } } if (c) for (i = 0; i < g; i += 1) if (d.isDateExact(f[i], a)) { f[i] = null; break; } if (j) for (i = 0; i < g; i += 1) if (d.isDateOverlap(f[i], a)) { f[i] = null; break; } c && f.push(c); }), f.filter(function (a) { return null != a; }) ); }), (c.prototype.nodes = function (a) { var b = this, c = b.settings, f = b.item, g = f.now, h = f.select, i = f.highlight, j = f.view, k = f.disable, l = f.min, m = f.max, n = (function (a, b) { return ( c.firstDay && (a.push(a.shift()), b.push(b.shift())), e.node( "thead", e.node( "tr", e.group({ min: 0, max: d - 1, i: 1, node: "th", item: function (d) { return [ a[d], c.klass.weekdays, 'scope=col title="' + b[d] + '"', ]; }, }) ) ) ); })( (c.showWeekdaysFull ? c.weekdaysFull : c.weekdaysShort).slice(0), c.weekdaysFull.slice(0) ), o = function (a) { return e.node( "div", " ", c.klass["nav" + (a ? "Next" : "Prev")] + ((a && j.year >= m.year && j.month >= m.month) || (!a && j.year <= l.year && j.month <= l.month) ? " " + c.klass.navDisabled : ""), "data-nav=" + (a || -1) + " " + e.ariaAttr({ role: "button", controls: b.$node[0].id + "_table", }) + ' title="' + (a ? c.labelMonthNext : c.labelMonthPrev) + '"' ); }, p = function () { var d = c.showMonthsShort ? c.monthsShort : c.monthsFull; return c.selectMonths ? e.node( "select", e.group({ min: 0, max: 11, i: 1, node: "option", item: function (a) { return [ d[a], 0, "value=" + a + (j.month == a ? " selected" : "") + ((j.year == l.year && a < l.month) || (j.year == m.year && a > m.month) ? " disabled" : ""), ]; }, }), c.klass.selectMonth, (a ? "" : "disabled") + " " + e.ariaAttr({ controls: b.$node[0].id + "_table" }) + ' title="' + c.labelMonthSelect + '"' ) : e.node("div", d[j.month], c.klass.month); }, q = function () { var d = j.year, f = !0 === c.selectYears ? 5 : ~~(c.selectYears / 2); if (f) { var g = l.year, h = m.year, i = d - f, k = d + f; if ((g > i && ((k += g - i), (i = g)), h < k)) { var n = i - g, o = k - h; (i -= n > o ? o : n), (k = h); } return e.node( "select", e.group({ min: i, max: k, i: 1, node: "option", item: function (a) { return [a, 0, "value=" + a + (d == a ? " selected" : "")]; }, }), c.klass.selectYear, (a ? "" : "disabled") + " " + e.ariaAttr({ controls: b.$node[0].id + "_table" }) + ' title="' + c.labelYearSelect + '"' ); } return e.node("div", d, c.klass.year); }; return ( e.node( "div", (c.selectYears ? q() + p() : p() + q()) + o() + o(1), c.klass.header ) + e.node( "table", n + e.node( "tbody", e.group({ min: 0, max: 5, i: 1, node: "tr", item: function (a) { var f = c.firstDay && 0 === b.create([j.year, j.month, 1]).day ? -7 : 0; return [ e.group({ min: d * a - j.day + f + 1, max: function () { return this.min + d - 1; }, i: 1, node: "td", item: function (a) { a = b.create([ j.year, j.month, a + (c.firstDay ? 1 : 0), ]); var d = h && h.pick == a.pick, f = i && i.pick == a.pick, n = (k && b.disabled(a)) || a.pick < l.pick || a.pick > m.pick, o = e.trigger(b.formats.toString, b, [c.format, a]); return [ e.node( "div", a.date, (function (b) { return ( b.push( j.month == a.month ? c.klass.infocus : c.klass.outfocus ), g.pick == a.pick && b.push(c.klass.now), d && b.push(c.klass.selected), f && b.push(c.klass.highlighted), n && b.push(c.klass.disabled), b.join(" ") ); })([c.klass.day]), "data-pick=" + a.pick + " " + e.ariaAttr({ role: "gridcell", label: o, selected: !(!d || b.$node.val() !== o) || null, activedescendant: !!f || null, disabled: !!n || null, }) ), "", e.ariaAttr({ role: "presentation" }), ]; }, }), ]; }, }) ), c.klass.table, 'id="' + b.$node[0].id + '_table" ' + e.ariaAttr({ role: "grid", controls: b.$node[0].id, readonly: !0 }) ) + e.node( "div", e.node( "button", c.today, c.klass.buttonToday, "type=button data-pick=" + g.pick + (a && !b.disabled(g) ? "" : " disabled") + " " + e.ariaAttr({ controls: b.$node[0].id }) ) + e.node( "button", c.clear, c.klass.buttonClear, "type=button data-clear=1" + (a ? "" : " disabled") + " " + e.ariaAttr({ controls: b.$node[0].id }) ) + e.node( "button", c.close, c.klass.buttonClose, "type=button data-close=true " + (a ? "" : " disabled") + " " + e.ariaAttr({ controls: b.$node[0].id }) ), c.klass.footer ) ); }), (c.defaults = (function (a) { return { labelMonthNext: "Next month", labelMonthPrev: "Previous month", labelMonthSelect: "Select a month", labelYearSelect: "Select a year", monthsFull: [ "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", ], weekdaysFull: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", ], weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], today: "Today", clear: "Clear", close: "Close", closeOnSelect: !0, closeOnClear: !0, updateInput: !0, format: "d mmmm, yyyy", klass: { table: a + "table", header: a + "header", navPrev: a + "nav--prev", navNext: a + "nav--next", navDisabled: a + "nav--disabled", month: a + "month", year: a + "year", selectMonth: a + "select--month", selectYear: a + "select--year", weekdays: a + "weekday", day: a + "day", disabled: a + "day--disabled", selected: a + "day--selected", highlighted: a + "day--highlighted", now: a + "day--today", infocus: a + "day--infocus", outfocus: a + "day--outfocus", footer: a + "footer", buttonClear: a + "button--clear", buttonToday: a + "button--today", buttonClose: a + "button--close", }, }; })(a.klasses().picker + "__")), a.extend("pickadate", c); });