function e(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e; } function t(e) { return (0, s.isDef)(e) && !isNaN(new Date(e).getTime()); } function n(e, t, n) { return Math.min(Math.max(e, t), n); } function a(e) { return ("00" + e).slice(-2); } function r(e, t) { for (var n = -1, a = Array(e); ++n < e; ) a[n] = t(n); return a; } function u(e) { if (e) { for (;isNaN(parseInt(e, 10)); ) e = e.slice(1); return parseInt(e, 10); } } function i(e, t) { return 32 - new Date(e, t - 1, 32).getDate(); } var o = function() { function e(e, t) { var n = [], a = !0, r = !1, u = void 0; try { for (var i, o = e[Symbol.iterator](); !(a = (i = o.next()).done) && (n.push(i.value), !t || n.length !== t); a = !0) ; } catch (e) { r = !0, u = e; } finally { try { !a && o.return && o.return(); } finally { if (r) throw u; } } return n; } return function(t, n) { if (Array.isArray(t)) return t; if (Symbol.iterator in Object(t)) return e(t, n); throw new TypeError("Invalid attempt to destructure non-iterable instance"); }; }(), m = require("../common/component"), s = require("../common/utils"), l = require("../picker/shared"), c = new Date().getFullYear(), h = function(e, t) { return t; }; (0, m.VantComponent)({ classes: [ "active-class", "toolbar-class", "column-class" ], props: Object.assign({}, l.pickerProps, { formatter: { type: Function, value: h }, value: null, type: { type: String, value: "datetime" }, showToolbar: { type: Boolean, value: !0 }, minDate: { type: Number, value: new Date(c - 10, 0, 1).getTime() }, maxDate: { type: Number, value: new Date(c + 10, 11, 31).getTime() }, minHour: { type: Number, value: 0 }, maxHour: { type: Number, value: 23 }, minMinute: { type: Number, value: 0 }, maxMinute: { type: Number, value: 59 } }), data: { innerValue: Date.now(), columns: [] }, watch: { value: function(e) { var t = this, n = this.data; (e = this.correctValue(e)) === n.innerValue || this.updateColumnValue(e).then(function() { t.$emit("input", e); }); }, type: "updateColumns", minHour: "updateColumns", maxHour: "updateColumns", minMinute: "updateColumns", maxMinute: "updateColumns" }, methods: { getPicker: function() { if (null == this.picker) { var e = this.picker = this.selectComponent(".van-datetime-picker"), t = e.setColumnValues; e.setColumnValues = function() { for (var n = arguments.length, a = Array(n), r = 0; r < n; r++) a[r] = arguments[r]; return t.apply(e, [].concat(a, [ !1 ])); }; } return this.picker; }, updateColumns: function() { var e = this.data.formatter, t = void 0 === e ? h : e, n = this.getRanges().map(function(e, n) { var u = e.type, i = e.range; return { values: r(i[1] - i[0] + 1, function(e) { var n = i[0] + e; return n = "year" === u ? "" + n : a(n), t(u, n); }) }; }); return this.set({ columns: n }); }, getRanges: function() { var e = this.data; if ("time" === e.type) return [ { type: "hour", range: [ e.minHour, e.maxHour ] }, { type: "minute", range: [ e.minMinute, e.maxMinute ] } ]; var t = this.getBoundary("max", e.innerValue), n = t.maxYear, a = t.maxDate, r = t.maxMonth, u = t.maxHour, i = t.maxMinute, o = this.getBoundary("min", e.innerValue), m = o.minYear, s = o.minDate, l = [ { type: "year", range: [ m, n ] }, { type: "month", range: [ o.minMonth, r ] }, { type: "day", range: [ s, a ] }, { type: "hour", range: [ o.minHour, u ] }, { type: "minute", range: [ o.minMinute, i ] } ]; return "date" === e.type && l.splice(3, 2), "year-month" === e.type && l.splice(2, 3), l; }, correctValue: function(e) { var r = this.data, u = "time" !== r.type; if (u && !t(e) ? e = r.minDate : u || e || (e = a(r.minHour) + ":00"), !u) { var i = e.split(":"), m = o(i, 2), s = m[0], l = m[1]; return s = a(n(s, r.minHour, r.maxHour)), l = a(n(l, r.minMinute, r.maxMinute)), s + ":" + l; } return e = Math.max(e, r.minDate), e = Math.min(e, r.maxDate); }, getBoundary: function(t, n) { var a, r = new Date(n), u = new Date(this.data[t + "Date"]), o = u.getFullYear(), m = 1, s = 1, l = 0, c = 0; return "max" === t && (m = 12, s = i(r.getFullYear(), r.getMonth() + 1), l = 23, c = 59), r.getFullYear() === o && (m = u.getMonth() + 1, r.getMonth() + 1 === m && (s = u.getDate(), r.getDate() === s && (l = u.getHours(), r.getHours() === l && (c = u.getMinutes())))), a = {}, e(a, t + "Year", o), e(a, t + "Month", m), e(a, t + "Date", s), e(a, t + "Hour", l), e(a, t + "Minute", c), a; }, onCancel: function() { this.$emit("cancel"); }, onConfirm: function() { this.$emit("confirm", this.data.innerValue); }, onChange: function() { var e = this, t = this.data, n = void 0, a = this.getPicker(); if ("time" === t.type) { var r = a.getIndexes(); n = r[0] + t.minHour + ":" + (r[1] + t.minMinute); } else { var o = a.getValues(), m = u(o[0]), s = u(o[1]), l = i(m, s), c = u(o[2]); "year-month" === t.type && (c = 1), c = c > l ? l : c; var h = 0, p = 0; "datetime" === t.type && (h = u(o[3]), p = u(o[4])), n = new Date(m, s - 1, c, h, p); } n = this.correctValue(n), this.updateColumnValue(n).then(function() { e.$emit("input", n), e.$emit("change", a); }); }, updateColumnValue: function(e) { var t = this, n = [], r = this.data, u = r.type, i = r.formatter, o = void 0 === i ? h : i, m = this.getPicker(); if ("time" === u) { var s = e.split(":"); n = [ o("hour", s[0]), o("minute", s[1]) ]; } else { var l = new Date(e); n = [ o("year", "" + l.getFullYear()), o("month", a(l.getMonth() + 1)) ], "date" === u && n.push(o("day", a(l.getDate()))), "datetime" === u && n.push(o("day", a(l.getDate())), o("hour", a(l.getHours())), o("minute", a(l.getMinutes()))); } return this.set({ innerValue: e }).then(function() { return t.updateColumns(); }).then(function() { return m.setValues(n); }); } }, created: function() { var e = this, t = this.correctValue(this.data.value); this.updateColumnValue(t).then(function() { e.$emit("input", t); }); } });