/* THIS IS A GENERATED/BUNDLED FILE BY ESBUILD if you want to view the source, please visit the github repository of this plugin */ "use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropNames = Object.getOwnPropertyNames; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a2, b2) => { for (var prop in b2 || (b2 = {})) if (__hasOwnProp.call(b2, prop)) __defNormalProp(a2, prop, b2[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b2)) { if (__propIsEnum.call(b2, prop)) __defNormalProp(a2, prop, b2[prop]); } return a2; }; var __spreadProps = (a2, b2) => __defProps(a2, __getOwnPropDescs(b2)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var __async = (__this, __arguments, generator) => { return new Promise((resolve3, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x2) => x2.done ? resolve3(x2.value) : Promise.resolve(x2.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; // node_modules/dayjs/dayjs.min.js var require_dayjs_min = __commonJS({ "node_modules/dayjs/dayjs.min.js"(exports, module2) { !function(t3, e) { "object" == typeof exports && "undefined" != typeof module2 ? module2.exports = e() : "function" == typeof define && define.amd ? define(e) : (t3 = "undefined" != typeof globalThis ? globalThis : t3 || self).dayjs = e(); }(exports, function() { "use strict"; var t3 = 1e3, e = 6e4, n2 = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u2 = "hour", a2 = "day", o2 = "week", f2 = "month", h2 = "quarter", c2 = "year", d2 = "date", l2 = "Invalid Date", $2 = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y2 = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M2 = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t4) { var e2 = ["th", "st", "nd", "rd"], n3 = t4 % 100; return "[" + t4 + (e2[(n3 - 20) % 10] || e2[n3] || e2[0]) + "]"; } }, m = function(t4, e2, n3) { var r3 = String(t4); return !r3 || r3.length >= e2 ? t4 : "" + Array(e2 + 1 - r3.length).join(n3) + t4; }, v2 = { s: m, z: function(t4) { var e2 = -t4.utcOffset(), n3 = Math.abs(e2), r3 = Math.floor(n3 / 60), i3 = n3 % 60; return (e2 <= 0 ? "+" : "-") + m(r3, 2, "0") + ":" + m(i3, 2, "0"); }, m: function t4(e2, n3) { if (e2.date() < n3.date()) return -t4(n3, e2); var r3 = 12 * (n3.year() - e2.year()) + (n3.month() - e2.month()), i3 = e2.clone().add(r3, f2), s3 = n3 - i3 < 0, u3 = e2.clone().add(r3 + (s3 ? -1 : 1), f2); return +(-(r3 + (n3 - i3) / (s3 ? i3 - u3 : u3 - i3)) || 0); }, a: function(t4) { return t4 < 0 ? Math.ceil(t4) || 0 : Math.floor(t4); }, p: function(t4) { return { M: f2, y: c2, w: o2, d: a2, D: d2, h: u2, m: s2, s: i2, ms: r2, Q: h2 }[t4] || String(t4 || "").toLowerCase().replace(/s$/, ""); }, u: function(t4) { return void 0 === t4; } }, g2 = "en", D2 = {}; D2[g2] = M2; var p2 = function(t4) { return t4 instanceof _24; }, S2 = function t4(e2, n3, r3) { var i3; if (!e2) return g2; if ("string" == typeof e2) { var s3 = e2.toLowerCase(); D2[s3] && (i3 = s3), n3 && (D2[s3] = n3, i3 = s3); var u3 = e2.split("-"); if (!i3 && u3.length > 1) return t4(u3[0]); } else { var a3 = e2.name; D2[a3] = e2, i3 = a3; } return !r3 && i3 && (g2 = i3), i3 || !r3 && g2; }, w2 = function(t4, e2) { if (p2(t4)) return t4.clone(); var n3 = "object" == typeof e2 ? e2 : {}; return n3.date = t4, n3.args = arguments, new _24(n3); }, O2 = v2; O2.l = S2, O2.i = p2, O2.w = function(t4, e2) { return w2(t4, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset }); }; var _24 = function() { function M3(t4) { this.$L = S2(t4.locale, null, true), this.parse(t4); } var m2 = M3.prototype; return m2.parse = function(t4) { this.$d = function(t5) { var e2 = t5.date, n3 = t5.utc; if (null === e2) return new Date(NaN); if (O2.u(e2)) return new Date(); if (e2 instanceof Date) return new Date(e2); if ("string" == typeof e2 && !/Z$/i.test(e2)) { var r3 = e2.match($2); if (r3) { var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3); return n3 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3); } } return new Date(e2); }(t4), this.$x = t4.x || {}, this.init(); }, m2.init = function() { var t4 = this.$d; this.$y = t4.getFullYear(), this.$M = t4.getMonth(), this.$D = t4.getDate(), this.$W = t4.getDay(), this.$H = t4.getHours(), this.$m = t4.getMinutes(), this.$s = t4.getSeconds(), this.$ms = t4.getMilliseconds(); }, m2.$utils = function() { return O2; }, m2.isValid = function() { return !(this.$d.toString() === l2); }, m2.isSame = function(t4, e2) { var n3 = w2(t4); return this.startOf(e2) <= n3 && n3 <= this.endOf(e2); }, m2.isAfter = function(t4, e2) { return w2(t4) < this.startOf(e2); }, m2.isBefore = function(t4, e2) { return this.endOf(e2) < w2(t4); }, m2.$g = function(t4, e2, n3) { return O2.u(t4) ? this[e2] : this.set(n3, t4); }, m2.unix = function() { return Math.floor(this.valueOf() / 1e3); }, m2.valueOf = function() { return this.$d.getTime(); }, m2.startOf = function(t4, e2) { var n3 = this, r3 = !!O2.u(e2) || e2, h3 = O2.p(t4), l3 = function(t5, e3) { var i3 = O2.w(n3.$u ? Date.UTC(n3.$y, e3, t5) : new Date(n3.$y, e3, t5), n3); return r3 ? i3 : i3.endOf(a2); }, $3 = function(t5, e3) { return O2.w(n3.toDate()[t5].apply(n3.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n3); }, y3 = this.$W, M4 = this.$M, m3 = this.$D, v3 = "set" + (this.$u ? "UTC" : ""); switch (h3) { case c2: return r3 ? l3(1, 0) : l3(31, 11); case f2: return r3 ? l3(1, M4) : l3(0, M4 + 1); case o2: var g3 = this.$locale().weekStart || 0, D3 = (y3 < g3 ? y3 + 7 : y3) - g3; return l3(r3 ? m3 - D3 : m3 + (6 - D3), M4); case a2: case d2: return $3(v3 + "Hours", 0); case u2: return $3(v3 + "Minutes", 1); case s2: return $3(v3 + "Seconds", 2); case i2: return $3(v3 + "Milliseconds", 3); default: return this.clone(); } }, m2.endOf = function(t4) { return this.startOf(t4, false); }, m2.$set = function(t4, e2) { var n3, o3 = O2.p(t4), h3 = "set" + (this.$u ? "UTC" : ""), l3 = (n3 = {}, n3[a2] = h3 + "Date", n3[d2] = h3 + "Date", n3[f2] = h3 + "Month", n3[c2] = h3 + "FullYear", n3[u2] = h3 + "Hours", n3[s2] = h3 + "Minutes", n3[i2] = h3 + "Seconds", n3[r2] = h3 + "Milliseconds", n3)[o3], $3 = o3 === a2 ? this.$D + (e2 - this.$W) : e2; if (o3 === f2 || o3 === c2) { var y3 = this.clone().set(d2, 1); y3.$d[l3]($3), y3.init(), this.$d = y3.set(d2, Math.min(this.$D, y3.daysInMonth())).$d; } else l3 && this.$d[l3]($3); return this.init(), this; }, m2.set = function(t4, e2) { return this.clone().$set(t4, e2); }, m2.get = function(t4) { return this[O2.p(t4)](); }, m2.add = function(r3, h3) { var d3, l3 = this; r3 = Number(r3); var $3 = O2.p(h3), y3 = function(t4) { var e2 = w2(l3); return O2.w(e2.date(e2.date() + Math.round(t4 * r3)), l3); }; if ($3 === f2) return this.set(f2, this.$M + r3); if ($3 === c2) return this.set(c2, this.$y + r3); if ($3 === a2) return y3(1); if ($3 === o2) return y3(7); var M4 = (d3 = {}, d3[s2] = e, d3[u2] = n2, d3[i2] = t3, d3)[$3] || 1, m3 = this.$d.getTime() + r3 * M4; return O2.w(m3, this); }, m2.subtract = function(t4, e2) { return this.add(-1 * t4, e2); }, m2.format = function(t4) { var e2 = this, n3 = this.$locale(); if (!this.isValid()) return n3.invalidDate || l2; var r3 = t4 || "YYYY-MM-DDTHH:mm:ssZ", i3 = O2.z(this), s3 = this.$H, u3 = this.$m, a3 = this.$M, o3 = n3.weekdays, f3 = n3.months, h3 = function(t5, n4, i4, s4) { return t5 && (t5[n4] || t5(e2, r3)) || i4[n4].slice(0, s4); }, c3 = function(t5) { return O2.s(s3 % 12 || 12, t5, "0"); }, d3 = n3.meridiem || function(t5, e3, n4) { var r4 = t5 < 12 ? "AM" : "PM"; return n4 ? r4.toLowerCase() : r4; }, $3 = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a3 + 1, MM: O2.s(a3 + 1, 2, "0"), MMM: h3(n3.monthsShort, a3, f3, 3), MMMM: h3(f3, a3), D: this.$D, DD: O2.s(this.$D, 2, "0"), d: String(this.$W), dd: h3(n3.weekdaysMin, this.$W, o3, 2), ddd: h3(n3.weekdaysShort, this.$W, o3, 3), dddd: o3[this.$W], H: String(s3), HH: O2.s(s3, 2, "0"), h: c3(1), hh: c3(2), a: d3(s3, u3, true), A: d3(s3, u3, false), m: String(u3), mm: O2.s(u3, 2, "0"), s: String(this.$s), ss: O2.s(this.$s, 2, "0"), SSS: O2.s(this.$ms, 3, "0"), Z: i3 }; return r3.replace(y2, function(t5, e3) { return e3 || $3[t5] || i3.replace(":", ""); }); }, m2.utcOffset = function() { return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); }, m2.diff = function(r3, d3, l3) { var $3, y3 = O2.p(d3), M4 = w2(r3), m3 = (M4.utcOffset() - this.utcOffset()) * e, v3 = this - M4, g3 = O2.m(this, M4); return g3 = ($3 = {}, $3[c2] = g3 / 12, $3[f2] = g3, $3[h2] = g3 / 3, $3[o2] = (v3 - m3) / 6048e5, $3[a2] = (v3 - m3) / 864e5, $3[u2] = v3 / n2, $3[s2] = v3 / e, $3[i2] = v3 / t3, $3)[y3] || v3, l3 ? g3 : O2.a(g3); }, m2.daysInMonth = function() { return this.endOf(f2).$D; }, m2.$locale = function() { return D2[this.$L]; }, m2.locale = function(t4, e2) { if (!t4) return this.$L; var n3 = this.clone(), r3 = S2(t4, e2, true); return r3 && (n3.$L = r3), n3; }, m2.clone = function() { return O2.w(this.$d, this); }, m2.toDate = function() { return new Date(this.valueOf()); }, m2.toJSON = function() { return this.isValid() ? this.toISOString() : null; }, m2.toISOString = function() { return this.$d.toISOString(); }, m2.toString = function() { return this.$d.toUTCString(); }, M3; }(), T = _24.prototype; return w2.prototype = T, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u2], ["$W", a2], ["$M", f2], ["$y", c2], ["$D", d2]].forEach(function(t4) { T[t4[1]] = function(e2) { return this.$g(e2, t4[0], t4[1]); }; }), w2.extend = function(t4, e2) { return t4.$i || (t4(e2, _24, w2), t4.$i = true), w2; }, w2.locale = S2, w2.isDayjs = p2, w2.unix = function(t4) { return w2(1e3 * t4); }, w2.en = D2[g2], w2.Ls = D2, w2.p = {}, w2; }); } }); // node_modules/dayjs/plugin/isoWeek.js var require_isoWeek = __commonJS({ "node_modules/dayjs/plugin/isoWeek.js"(exports, module2) { !function(e, t3) { "object" == typeof exports && "undefined" != typeof module2 ? module2.exports = t3() : "function" == typeof define && define.amd ? define(t3) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isoWeek = t3(); }(exports, function() { "use strict"; var e = "day"; return function(t3, i2, s2) { var a2 = function(t4) { return t4.add(4 - t4.isoWeekday(), e); }, d2 = i2.prototype; d2.isoWeekYear = function() { return a2(this).year(); }, d2.isoWeek = function(t4) { if (!this.$utils().u(t4)) return this.add(7 * (t4 - this.isoWeek()), e); var i3, d3, n3, o2, r2 = a2(this), u2 = (i3 = this.isoWeekYear(), d3 = this.$u, n3 = (d3 ? s2.utc : s2)().year(i3).startOf("year"), o2 = 4 - n3.isoWeekday(), n3.isoWeekday() > 4 && (o2 += 7), n3.add(o2, e)); return r2.diff(u2, "week") + 1; }, d2.isoWeekday = function(e2) { return this.$utils().u(e2) ? this.day() || 7 : this.day(this.day() % 7 ? e2 : e2 - 7); }; var n2 = d2.startOf; d2.startOf = function(e2, t4) { var i3 = this.$utils(), s3 = !!i3.u(t4) || t4; return "isoweek" === i3.p(e2) ? s3 ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day") : n2.bind(this)(e2, t4); }; }; }); } }); // node_modules/dayjs/plugin/localizedFormat.js var require_localizedFormat = __commonJS({ "node_modules/dayjs/plugin/localizedFormat.js"(exports, module2) { !function(e, t3) { "object" == typeof exports && "undefined" != typeof module2 ? module2.exports = t3() : "function" == typeof define && define.amd ? define(t3) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_localizedFormat = t3(); }(exports, function() { "use strict"; var e = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }; return function(t3, o2, n2) { var r2 = o2.prototype, i2 = r2.format; n2.en.formats = e, r2.format = function(t4) { void 0 === t4 && (t4 = "YYYY-MM-DDTHH:mm:ssZ"); var o3 = this.$locale().formats, n3 = function(t5, o4) { return t5.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(t6, n4, r3) { var i3 = r3 && r3.toUpperCase(); return n4 || o4[r3] || e[r3] || o4[i3].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(e2, t7, o5) { return t7 || o5.slice(1); }); }); }(t4, void 0 === o3 ? {} : o3); return i2.call(this, n3); }; }; }); } }); // node_modules/fp-ts/lib/function.js var require_function = __commonJS({ "node_modules/fp-ts/lib/function.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEndomorphismMonoid = exports.not = exports.SK = exports.hole = exports.pipe = exports.untupled = exports.tupled = exports.absurd = exports.decrement = exports.increment = exports.tuple = exports.flow = exports.flip = exports.constVoid = exports.constUndefined = exports.constNull = exports.constFalse = exports.constTrue = exports.constant = exports.unsafeCoerce = exports.identity = exports.apply = exports.getRing = exports.getSemiring = exports.getMonoid = exports.getSemigroup = exports.getBooleanAlgebra = void 0; var getBooleanAlgebra2 = function(B2) { return function() { return { meet: function(x2, y2) { return function(a2) { return B2.meet(x2(a2), y2(a2)); }; }, join: function(x2, y2) { return function(a2) { return B2.join(x2(a2), y2(a2)); }; }, zero: function() { return B2.zero; }, one: function() { return B2.one; }, implies: function(x2, y2) { return function(a2) { return B2.implies(x2(a2), y2(a2)); }; }, not: function(x2) { return function(a2) { return B2.not(x2(a2)); }; } }; }; }; exports.getBooleanAlgebra = getBooleanAlgebra2; var getSemigroup7 = function(S2) { return function() { return { concat: function(f2, g2) { return function(a2) { return S2.concat(f2(a2), g2(a2)); }; } }; }; }; exports.getSemigroup = getSemigroup7; var getMonoid5 = function(M2) { var getSemigroupM = (0, exports.getSemigroup)(M2); return function() { return { concat: getSemigroupM().concat, empty: function() { return M2.empty; } }; }; }; exports.getMonoid = getMonoid5; var getSemiring2 = function(S2) { return { add: function(f2, g2) { return function(x2) { return S2.add(f2(x2), g2(x2)); }; }, zero: function() { return S2.zero; }, mul: function(f2, g2) { return function(x2) { return S2.mul(f2(x2), g2(x2)); }; }, one: function() { return S2.one; } }; }; exports.getSemiring = getSemiring2; var getRing2 = function(R2) { var S2 = (0, exports.getSemiring)(R2); return { add: S2.add, mul: S2.mul, one: S2.one, zero: S2.zero, sub: function(f2, g2) { return function(x2) { return R2.sub(f2(x2), g2(x2)); }; } }; }; exports.getRing = getRing2; var apply2 = function(a2) { return function(f2) { return f2(a2); }; }; exports.apply = apply2; function identity3(a2) { return a2; } exports.identity = identity3; exports.unsafeCoerce = identity3; function constant2(a2) { return function() { return a2; }; } exports.constant = constant2; exports.constTrue = constant2(true); exports.constFalse = constant2(false); exports.constNull = constant2(null); exports.constUndefined = constant2(void 0); exports.constVoid = exports.constUndefined; function flip4(f2) { return function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (args.length > 1) { return f2(args[1], args[0]); } return function(a2) { return f2(a2)(args[0]); }; }; } exports.flip = flip4; function flow2(ab, bc, cd, de, ef, fg, gh, hi, ij) { switch (arguments.length) { case 1: return ab; case 2: return function() { return bc(ab.apply(this, arguments)); }; case 3: return function() { return cd(bc(ab.apply(this, arguments))); }; case 4: return function() { return de(cd(bc(ab.apply(this, arguments)))); }; case 5: return function() { return ef(de(cd(bc(ab.apply(this, arguments))))); }; case 6: return function() { return fg(ef(de(cd(bc(ab.apply(this, arguments)))))); }; case 7: return function() { return gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))); }; case 8: return function() { return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))); }; case 9: return function() { return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))))); }; } return; } exports.flow = flow2; function tuple2() { var t3 = []; for (var _i = 0; _i < arguments.length; _i++) { t3[_i] = arguments[_i]; } return t3; } exports.tuple = tuple2; function increment2(n2) { return n2 + 1; } exports.increment = increment2; function decrement2(n2) { return n2 - 1; } exports.decrement = decrement2; function absurd2(_24) { throw new Error("Called `absurd` function which should be uncallable"); } exports.absurd = absurd2; function tupled2(f2) { return function(a2) { return f2.apply(void 0, a2); }; } exports.tupled = tupled2; function untupled2(f2) { return function() { var a2 = []; for (var _i = 0; _i < arguments.length; _i++) { a2[_i] = arguments[_i]; } return f2(a2); }; } exports.untupled = untupled2; function pipe3(a2, ab, bc, cd, de, ef, fg, gh, hi) { switch (arguments.length) { case 1: return a2; case 2: return ab(a2); case 3: return bc(ab(a2)); case 4: return cd(bc(ab(a2))); case 5: return de(cd(bc(ab(a2)))); case 6: return ef(de(cd(bc(ab(a2))))); case 7: return fg(ef(de(cd(bc(ab(a2)))))); case 8: return gh(fg(ef(de(cd(bc(ab(a2))))))); case 9: return hi(gh(fg(ef(de(cd(bc(ab(a2)))))))); default: { var ret = arguments[0]; for (var i2 = 1; i2 < arguments.length; i2++) { ret = arguments[i2](ret); } return ret; } } } exports.pipe = pipe3; exports.hole = absurd2; var SK2 = function(_24, b2) { return b2; }; exports.SK = SK2; function not3(predicate) { return function(a2) { return !predicate(a2); }; } exports.not = not3; var getEndomorphismMonoid2 = function() { return { concat: function(first, second) { return flow2(first, second); }, empty: identity3 }; }; exports.getEndomorphismMonoid = getEndomorphismMonoid2; } }); // node_modules/obsidian-dataview/lib/index.js var require_lib = __commonJS({ "node_modules/obsidian-dataview/lib/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("obsidian"); var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; var luxon = {}; Object.defineProperty(luxon, "__esModule", { value: true }); function _defineProperties2(target, props) { for (var i2 = 0; i2 < props.length; i2++) { var descriptor = props[i2]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass2(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties2(Constructor.prototype, protoProps); if (staticProps) _defineProperties2(Constructor, staticProps); return Constructor; } function _extends2() { _extends2 = Object.assign || function(target) { for (var i2 = 1; i2 < arguments.length; i2++) { var source = arguments[i2]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends2.apply(this, arguments); } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf2(subClass, superClass); } function _getPrototypeOf2(o2) { _getPrototypeOf2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf3(o3) { return o3.__proto__ || Object.getPrototypeOf(o3); }; return _getPrototypeOf2(o2); } function _setPrototypeOf2(o2, p2) { _setPrototypeOf2 = Object.setPrototypeOf || function _setPrototypeOf3(o3, p3) { o3.__proto__ = p3; return o3; }; return _setPrototypeOf2(o2, p2); } function _isNativeReflectConstruct2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() { })); return true; } catch (e) { return false; } } function _construct(Parent, args, Class) { if (_isNativeReflectConstruct2()) { _construct = Reflect.construct; } else { _construct = function _construct2(Parent2, args2, Class2) { var a2 = [null]; a2.push.apply(a2, args2); var Constructor = Function.bind.apply(Parent2, a2); var instance113 = new Constructor(); if (Class2) _setPrototypeOf2(instance113, Class2.prototype); return instance113; }; } return _construct.apply(null, arguments); } function _isNativeFunction(fn3) { return Function.toString.call(fn3).indexOf("[native code]") !== -1; } function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? /* @__PURE__ */ new Map() : void 0; _wrapNativeSuper = function _wrapNativeSuper2(Class2) { if (Class2 === null || !_isNativeFunction(Class2)) return Class2; if (typeof Class2 !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class2)) return _cache.get(Class2); _cache.set(Class2, Wrapper); } function Wrapper() { return _construct(Class2, arguments, _getPrototypeOf2(this).constructor); } Wrapper.prototype = Object.create(Class2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf2(Wrapper, Class2); }; return _wrapNativeSuper(Class); } function _objectWithoutPropertiesLoose3(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i2; for (i2 = 0; i2 < sourceKeys.length; i2++) { key = sourceKeys[i2]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _unsupportedIterableToArray3(o2, minLen) { if (!o2) return; if (typeof o2 === "string") return _arrayLikeToArray3(o2, minLen); var n3 = Object.prototype.toString.call(o2).slice(8, -1); if (n3 === "Object" && o2.constructor) n3 = o2.constructor.name; if (n3 === "Map" || n3 === "Set") return Array.from(o2); if (n3 === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n3)) return _arrayLikeToArray3(o2, minLen); } function _arrayLikeToArray3(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i2 = 0, arr2 = new Array(len); i2 < len; i2++) arr2[i2] = arr[i2]; return arr2; } function _createForOfIteratorHelperLoose(o2, allowArrayLike) { var it = typeof Symbol !== "undefined" && o2[Symbol.iterator] || o2["@@iterator"]; if (it) return (it = it.call(o2)).next.bind(it); if (Array.isArray(o2) || (it = _unsupportedIterableToArray3(o2)) || allowArrayLike && o2 && typeof o2.length === "number") { if (it) o2 = it; var i2 = 0; return function() { if (i2 >= o2.length) return { done: true }; return { done: false, value: o2[i2++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var LuxonError = /* @__PURE__ */ function(_Error) { _inheritsLoose(LuxonError2, _Error); function LuxonError2() { return _Error.apply(this, arguments) || this; } return LuxonError2; }(/* @__PURE__ */ _wrapNativeSuper(Error)); var InvalidDateTimeError = /* @__PURE__ */ function(_LuxonError) { _inheritsLoose(InvalidDateTimeError2, _LuxonError); function InvalidDateTimeError2(reason) { return _LuxonError.call(this, "Invalid DateTime: " + reason.toMessage()) || this; } return InvalidDateTimeError2; }(LuxonError); var InvalidIntervalError = /* @__PURE__ */ function(_LuxonError2) { _inheritsLoose(InvalidIntervalError2, _LuxonError2); function InvalidIntervalError2(reason) { return _LuxonError2.call(this, "Invalid Interval: " + reason.toMessage()) || this; } return InvalidIntervalError2; }(LuxonError); var InvalidDurationError = /* @__PURE__ */ function(_LuxonError3) { _inheritsLoose(InvalidDurationError2, _LuxonError3); function InvalidDurationError2(reason) { return _LuxonError3.call(this, "Invalid Duration: " + reason.toMessage()) || this; } return InvalidDurationError2; }(LuxonError); var ConflictingSpecificationError = /* @__PURE__ */ function(_LuxonError4) { _inheritsLoose(ConflictingSpecificationError2, _LuxonError4); function ConflictingSpecificationError2() { return _LuxonError4.apply(this, arguments) || this; } return ConflictingSpecificationError2; }(LuxonError); var InvalidUnitError = /* @__PURE__ */ function(_LuxonError5) { _inheritsLoose(InvalidUnitError2, _LuxonError5); function InvalidUnitError2(unit) { return _LuxonError5.call(this, "Invalid unit " + unit) || this; } return InvalidUnitError2; }(LuxonError); var InvalidArgumentError = /* @__PURE__ */ function(_LuxonError6) { _inheritsLoose(InvalidArgumentError2, _LuxonError6); function InvalidArgumentError2() { return _LuxonError6.apply(this, arguments) || this; } return InvalidArgumentError2; }(LuxonError); var ZoneIsAbstractError = /* @__PURE__ */ function(_LuxonError7) { _inheritsLoose(ZoneIsAbstractError2, _LuxonError7); function ZoneIsAbstractError2() { return _LuxonError7.call(this, "Zone is an abstract class") || this; } return ZoneIsAbstractError2; }(LuxonError); var n2 = "numeric"; var s2 = "short"; var l2 = "long"; var DATE_SHORT = { year: n2, month: n2, day: n2 }; var DATE_MED = { year: n2, month: s2, day: n2 }; var DATE_MED_WITH_WEEKDAY = { year: n2, month: s2, day: n2, weekday: s2 }; var DATE_FULL = { year: n2, month: l2, day: n2 }; var DATE_HUGE = { year: n2, month: l2, day: n2, weekday: l2 }; var TIME_SIMPLE = { hour: n2, minute: n2 }; var TIME_WITH_SECONDS = { hour: n2, minute: n2, second: n2 }; var TIME_WITH_SHORT_OFFSET = { hour: n2, minute: n2, second: n2, timeZoneName: s2 }; var TIME_WITH_LONG_OFFSET = { hour: n2, minute: n2, second: n2, timeZoneName: l2 }; var TIME_24_SIMPLE = { hour: n2, minute: n2, hourCycle: "h23" }; var TIME_24_WITH_SECONDS = { hour: n2, minute: n2, second: n2, hourCycle: "h23" }; var TIME_24_WITH_SHORT_OFFSET = { hour: n2, minute: n2, second: n2, hourCycle: "h23", timeZoneName: s2 }; var TIME_24_WITH_LONG_OFFSET = { hour: n2, minute: n2, second: n2, hourCycle: "h23", timeZoneName: l2 }; var DATETIME_SHORT = { year: n2, month: n2, day: n2, hour: n2, minute: n2 }; var DATETIME_SHORT_WITH_SECONDS = { year: n2, month: n2, day: n2, hour: n2, minute: n2, second: n2 }; var DATETIME_MED = { year: n2, month: s2, day: n2, hour: n2, minute: n2 }; var DATETIME_MED_WITH_SECONDS = { year: n2, month: s2, day: n2, hour: n2, minute: n2, second: n2 }; var DATETIME_MED_WITH_WEEKDAY = { year: n2, month: s2, day: n2, weekday: s2, hour: n2, minute: n2 }; var DATETIME_FULL = { year: n2, month: l2, day: n2, hour: n2, minute: n2, timeZoneName: s2 }; var DATETIME_FULL_WITH_SECONDS = { year: n2, month: l2, day: n2, hour: n2, minute: n2, second: n2, timeZoneName: s2 }; var DATETIME_HUGE = { year: n2, month: l2, day: n2, weekday: l2, hour: n2, minute: n2, timeZoneName: l2 }; var DATETIME_HUGE_WITH_SECONDS = { year: n2, month: l2, day: n2, weekday: l2, hour: n2, minute: n2, second: n2, timeZoneName: l2 }; function isUndefined(o2) { return typeof o2 === "undefined"; } function isNumber2(o2) { return typeof o2 === "number"; } function isInteger(o2) { return typeof o2 === "number" && o2 % 1 === 0; } function isString2(o2) { return typeof o2 === "string"; } function isDate3(o2) { return Object.prototype.toString.call(o2) === "[object Date]"; } function hasRelative() { try { return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; } catch (e) { return false; } } function maybeArray(thing) { return Array.isArray(thing) ? thing : [thing]; } function bestBy(arr, by, compare2) { if (arr.length === 0) { return void 0; } return arr.reduce(function(best, next2) { var pair = [by(next2), next2]; if (!best) { return pair; } else if (compare2(best[0], pair[0]) === best[0]) { return best; } else { return pair; } }, null)[1]; } function pick(obj, keys) { return keys.reduce(function(a2, k2) { a2[k2] = obj[k2]; return a2; }, {}); } function hasOwnProperty(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } function integerBetween(thing, bottom2, top2) { return isInteger(thing) && thing >= bottom2 && thing <= top2; } function floorMod(x2, n3) { return x2 - n3 * Math.floor(x2 / n3); } function padStart(input, n3) { if (n3 === void 0) { n3 = 2; } var isNeg = input < 0; var padded; if (isNeg) { padded = "-" + ("" + -input).padStart(n3, "0"); } else { padded = ("" + input).padStart(n3, "0"); } return padded; } function parseInteger(string2) { if (isUndefined(string2) || string2 === null || string2 === "") { return void 0; } else { return parseInt(string2, 10); } } function parseFloating(string2) { if (isUndefined(string2) || string2 === null || string2 === "") { return void 0; } else { return parseFloat(string2); } } function parseMillis(fraction) { if (isUndefined(fraction) || fraction === null || fraction === "") { return void 0; } else { var f2 = parseFloat("0." + fraction) * 1e3; return Math.floor(f2); } } function roundTo(number, digits, towardZero) { if (towardZero === void 0) { towardZero = false; } var factor = Math.pow(10, digits), rounder = towardZero ? Math.trunc : Math.round; return rounder(number * factor) / factor; } function isLeapYear(year) { return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0); } function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } function daysInMonth(year, month) { var modMonth = floorMod(month - 1, 12) + 1, modYear = year + (month - modMonth) / 12; if (modMonth === 2) { return isLeapYear(modYear) ? 29 : 28; } else { return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1]; } } function objToLocalTS(obj) { var d2 = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); if (obj.year < 100 && obj.year >= 0) { d2 = new Date(d2); d2.setUTCFullYear(d2.getUTCFullYear() - 1900); } return +d2; } function weeksInWeekYear(weekYear) { var p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7, last5 = weekYear - 1, p2 = (last5 + Math.floor(last5 / 4) - Math.floor(last5 / 100) + Math.floor(last5 / 400)) % 7; return p1 === 4 || p2 === 3 ? 53 : 52; } function untruncateYear(year) { if (year > 99) { return year; } else return year > 60 ? 1900 + year : 2e3 + year; } function parseZoneInfo(ts, offsetFormat, locale, timeZone) { if (timeZone === void 0) { timeZone = null; } var date = new Date(ts), intlOpts = { hourCycle: "h23", year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit" }; if (timeZone) { intlOpts.timeZone = timeZone; } var modified = _extends2({ timeZoneName: offsetFormat }, intlOpts); var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function(m) { return m.type.toLowerCase() === "timezonename"; }); return parsed ? parsed.value : null; } function signedOffset(offHourStr, offMinuteStr) { var offHour = parseInt(offHourStr, 10); if (Number.isNaN(offHour)) { offHour = 0; } var offMin = parseInt(offMinuteStr, 10) || 0, offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin; return offHour * 60 + offMinSigned; } function asNumber(value) { var numericValue = Number(value); if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) throw new InvalidArgumentError("Invalid unit value " + value); return numericValue; } function normalizeObject(obj, normalizer) { var normalized = {}; for (var u2 in obj) { if (hasOwnProperty(obj, u2)) { var v2 = obj[u2]; if (v2 === void 0 || v2 === null) continue; normalized[normalizer(u2)] = asNumber(v2); } } return normalized; } function formatOffset(offset3, format2) { var hours = Math.trunc(Math.abs(offset3 / 60)), minutes = Math.trunc(Math.abs(offset3 % 60)), sign = offset3 >= 0 ? "+" : "-"; switch (format2) { case "short": return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2); case "narrow": return "" + sign + hours + (minutes > 0 ? ":" + minutes : ""); case "techie": return "" + sign + padStart(hours, 2) + padStart(minutes, 2); default: throw new RangeError("Value format " + format2 + " is out of range for property format"); } } function timeObject(obj) { return pick(obj, ["hour", "minute", "second", "millisecond"]); } var ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; var monthsLong = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var monthsShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; var monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; function months(length) { switch (length) { case "narrow": return [].concat(monthsNarrow); case "short": return [].concat(monthsShort); case "long": return [].concat(monthsLong); case "numeric": return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; case "2-digit": return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]; default: return null; } } var weekdaysLong = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; var weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]; var weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"]; function weekdays(length) { switch (length) { case "narrow": return [].concat(weekdaysNarrow); case "short": return [].concat(weekdaysShort); case "long": return [].concat(weekdaysLong); case "numeric": return ["1", "2", "3", "4", "5", "6", "7"]; default: return null; } } var meridiems = ["AM", "PM"]; var erasLong = ["Before Christ", "Anno Domini"]; var erasShort = ["BC", "AD"]; var erasNarrow = ["B", "A"]; function eras(length) { switch (length) { case "narrow": return [].concat(erasNarrow); case "short": return [].concat(erasShort); case "long": return [].concat(erasLong); default: return null; } } function meridiemForDateTime(dt) { return meridiems[dt.hour < 12 ? 0 : 1]; } function weekdayForDateTime(dt, length) { return weekdays(length)[dt.weekday - 1]; } function monthForDateTime(dt, length) { return months(length)[dt.month - 1]; } function eraForDateTime(dt, length) { return eras(length)[dt.year < 0 ? 0 : 1]; } function formatRelativeTime(unit, count, numeric, narrow) { if (numeric === void 0) { numeric = "always"; } if (narrow === void 0) { narrow = false; } var units = { years: ["year", "yr."], quarters: ["quarter", "qtr."], months: ["month", "mo."], weeks: ["week", "wk."], days: ["day", "day", "days"], hours: ["hour", "hr."], minutes: ["minute", "min."], seconds: ["second", "sec."] }; var lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1; if (numeric === "auto" && lastable) { var isDay = unit === "days"; switch (count) { case 1: return isDay ? "tomorrow" : "next " + units[unit][0]; case -1: return isDay ? "yesterday" : "last " + units[unit][0]; case 0: return isDay ? "today" : "this " + units[unit][0]; } } var isInPast = Object.is(count, -0) || count < 0, fmtValue = Math.abs(count), singular = fmtValue === 1, lilUnits = units[unit], fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit; return isInPast ? fmtValue + " " + fmtUnit + " ago" : "in " + fmtValue + " " + fmtUnit; } function stringifyTokens(splits, tokenToString) { var s3 = ""; for (var _iterator = _createForOfIteratorHelperLoose(splits), _step; !(_step = _iterator()).done; ) { var token = _step.value; if (token.literal) { s3 += token.val; } else { s3 += tokenToString(token.val); } } return s3; } var _macroTokenToFormatOpts = { D: DATE_SHORT, DD: DATE_MED, DDD: DATE_FULL, DDDD: DATE_HUGE, t: TIME_SIMPLE, tt: TIME_WITH_SECONDS, ttt: TIME_WITH_SHORT_OFFSET, tttt: TIME_WITH_LONG_OFFSET, T: TIME_24_SIMPLE, TT: TIME_24_WITH_SECONDS, TTT: TIME_24_WITH_SHORT_OFFSET, TTTT: TIME_24_WITH_LONG_OFFSET, f: DATETIME_SHORT, ff: DATETIME_MED, fff: DATETIME_FULL, ffff: DATETIME_HUGE, F: DATETIME_SHORT_WITH_SECONDS, FF: DATETIME_MED_WITH_SECONDS, FFF: DATETIME_FULL_WITH_SECONDS, FFFF: DATETIME_HUGE_WITH_SECONDS }; var Formatter2 = /* @__PURE__ */ function() { Formatter3.create = function create(locale, opts) { if (opts === void 0) { opts = {}; } return new Formatter3(locale, opts); }; Formatter3.parseFormat = function parseFormat(fmt) { var current = null, currentFull = "", bracketed = false; var splits = []; for (var i2 = 0; i2 < fmt.length; i2++) { var c2 = fmt.charAt(i2); if (c2 === "'") { if (currentFull.length > 0) { splits.push({ literal: bracketed, val: currentFull }); } current = null; currentFull = ""; bracketed = !bracketed; } else if (bracketed) { currentFull += c2; } else if (c2 === current) { currentFull += c2; } else { if (currentFull.length > 0) { splits.push({ literal: false, val: currentFull }); } currentFull = c2; current = c2; } } if (currentFull.length > 0) { splits.push({ literal: bracketed, val: currentFull }); } return splits; }; Formatter3.macroTokenToFormatOpts = function macroTokenToFormatOpts(token) { return _macroTokenToFormatOpts[token]; }; function Formatter3(locale, formatOpts) { this.opts = formatOpts; this.loc = locale; this.systemLoc = null; } var _proto = Formatter3.prototype; _proto.formatWithSystemDefault = function formatWithSystemDefault(dt, opts) { if (this.systemLoc === null) { this.systemLoc = this.loc.redefaultToSystem(); } var df = this.systemLoc.dtFormatter(dt, _extends2({}, this.opts, opts)); return df.format(); }; _proto.formatDateTime = function formatDateTime(dt, opts) { if (opts === void 0) { opts = {}; } var df = this.loc.dtFormatter(dt, _extends2({}, this.opts, opts)); return df.format(); }; _proto.formatDateTimeParts = function formatDateTimeParts(dt, opts) { if (opts === void 0) { opts = {}; } var df = this.loc.dtFormatter(dt, _extends2({}, this.opts, opts)); return df.formatToParts(); }; _proto.resolvedOptions = function resolvedOptions(dt, opts) { if (opts === void 0) { opts = {}; } var df = this.loc.dtFormatter(dt, _extends2({}, this.opts, opts)); return df.resolvedOptions(); }; _proto.num = function num(n3, p2) { if (p2 === void 0) { p2 = 0; } if (this.opts.forceSimple) { return padStart(n3, p2); } var opts = _extends2({}, this.opts); if (p2 > 0) { opts.padTo = p2; } return this.loc.numberFormatter(opts).format(n3); }; _proto.formatDateTimeFromString = function formatDateTimeFromString(dt, fmt) { var _this = this; var knownEnglish = this.loc.listingMode() === "en", useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", string2 = function string3(opts, extract2) { return _this.loc.extract(dt, opts, extract2); }, formatOffset2 = function formatOffset3(opts) { if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) { return "Z"; } return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : ""; }, meridiem = function meridiem2() { return knownEnglish ? meridiemForDateTime(dt) : string2({ hour: "numeric", hourCycle: "h12" }, "dayperiod"); }, month = function month2(length, standalone) { return knownEnglish ? monthForDateTime(dt, length) : string2(standalone ? { month: length } : { month: length, day: "numeric" }, "month"); }, weekday = function weekday2(length, standalone) { return knownEnglish ? weekdayForDateTime(dt, length) : string2(standalone ? { weekday: length } : { weekday: length, month: "long", day: "numeric" }, "weekday"); }, maybeMacro = function maybeMacro2(token) { var formatOpts = Formatter3.macroTokenToFormatOpts(token); if (formatOpts) { return _this.formatWithSystemDefault(dt, formatOpts); } else { return token; } }, era = function era2(length) { return knownEnglish ? eraForDateTime(dt, length) : string2({ era: length }, "era"); }, tokenToString = function tokenToString2(token) { switch (token) { case "S": return _this.num(dt.millisecond); case "u": case "SSS": return _this.num(dt.millisecond, 3); case "s": return _this.num(dt.second); case "ss": return _this.num(dt.second, 2); case "uu": return _this.num(Math.floor(dt.millisecond / 10), 2); case "uuu": return _this.num(Math.floor(dt.millisecond / 100)); case "m": return _this.num(dt.minute); case "mm": return _this.num(dt.minute, 2); case "h": return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12); case "hh": return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2); case "H": return _this.num(dt.hour); case "HH": return _this.num(dt.hour, 2); case "Z": return formatOffset2({ format: "narrow", allowZ: _this.opts.allowZ }); case "ZZ": return formatOffset2({ format: "short", allowZ: _this.opts.allowZ }); case "ZZZ": return formatOffset2({ format: "techie", allowZ: _this.opts.allowZ }); case "ZZZZ": return dt.zone.offsetName(dt.ts, { format: "short", locale: _this.loc.locale }); case "ZZZZZ": return dt.zone.offsetName(dt.ts, { format: "long", locale: _this.loc.locale }); case "z": return dt.zoneName; case "a": return meridiem(); case "d": return useDateTimeFormatter ? string2({ day: "numeric" }, "day") : _this.num(dt.day); case "dd": return useDateTimeFormatter ? string2({ day: "2-digit" }, "day") : _this.num(dt.day, 2); case "c": return _this.num(dt.weekday); case "ccc": return weekday("short", true); case "cccc": return weekday("long", true); case "ccccc": return weekday("narrow", true); case "E": return _this.num(dt.weekday); case "EEE": return weekday("short", false); case "EEEE": return weekday("long", false); case "EEEEE": return weekday("narrow", false); case "L": return useDateTimeFormatter ? string2({ month: "numeric", day: "numeric" }, "month") : _this.num(dt.month); case "LL": return useDateTimeFormatter ? string2({ month: "2-digit", day: "numeric" }, "month") : _this.num(dt.month, 2); case "LLL": return month("short", true); case "LLLL": return month("long", true); case "LLLLL": return month("narrow", true); case "M": return useDateTimeFormatter ? string2({ month: "numeric" }, "month") : _this.num(dt.month); case "MM": return useDateTimeFormatter ? string2({ month: "2-digit" }, "month") : _this.num(dt.month, 2); case "MMM": return month("short", false); case "MMMM": return month("long", false); case "MMMMM": return month("narrow", false); case "y": return useDateTimeFormatter ? string2({ year: "numeric" }, "year") : _this.num(dt.year); case "yy": return useDateTimeFormatter ? string2({ year: "2-digit" }, "year") : _this.num(dt.year.toString().slice(-2), 2); case "yyyy": return useDateTimeFormatter ? string2({ year: "numeric" }, "year") : _this.num(dt.year, 4); case "yyyyyy": return useDateTimeFormatter ? string2({ year: "numeric" }, "year") : _this.num(dt.year, 6); case "G": return era("short"); case "GG": return era("long"); case "GGGGG": return era("narrow"); case "kk": return _this.num(dt.weekYear.toString().slice(-2), 2); case "kkkk": return _this.num(dt.weekYear, 4); case "W": return _this.num(dt.weekNumber); case "WW": return _this.num(dt.weekNumber, 2); case "o": return _this.num(dt.ordinal); case "ooo": return _this.num(dt.ordinal, 3); case "q": return _this.num(dt.quarter); case "qq": return _this.num(dt.quarter, 2); case "X": return _this.num(Math.floor(dt.ts / 1e3)); case "x": return _this.num(dt.ts); default: return maybeMacro(token); } }; return stringifyTokens(Formatter3.parseFormat(fmt), tokenToString); }; _proto.formatDurationFromString = function formatDurationFromString(dur, fmt) { var _this2 = this; var tokenToField = function tokenToField2(token) { switch (token[0]) { case "S": return "millisecond"; case "s": return "second"; case "m": return "minute"; case "h": return "hour"; case "d": return "day"; case "w": return "week"; case "M": return "month"; case "y": return "year"; default: return null; } }, tokenToString = function tokenToString2(lildur) { return function(token) { var mapped = tokenToField(token); if (mapped) { return _this2.num(lildur.get(mapped), token.length); } else { return token; } }; }, tokens = Formatter3.parseFormat(fmt), realTokens = tokens.reduce(function(found, _ref) { var literal = _ref.literal, val = _ref.val; return literal ? found : found.concat(val); }, []), collapsed = dur.shiftTo.apply(dur, realTokens.map(tokenToField).filter(function(t3) { return t3; })); return stringifyTokens(tokens, tokenToString(collapsed)); }; return Formatter3; }(); var Invalid = /* @__PURE__ */ function() { function Invalid2(reason, explanation) { this.reason = reason; this.explanation = explanation; } var _proto = Invalid2.prototype; _proto.toMessage = function toMessage() { if (this.explanation) { return this.reason + ": " + this.explanation; } else { return this.reason; } }; return Invalid2; }(); var Zone = /* @__PURE__ */ function() { function Zone2() { } var _proto = Zone2.prototype; _proto.offsetName = function offsetName(ts, opts) { throw new ZoneIsAbstractError(); }; _proto.formatOffset = function formatOffset2(ts, format2) { throw new ZoneIsAbstractError(); }; _proto.offset = function offset3(ts) { throw new ZoneIsAbstractError(); }; _proto.equals = function equals(otherZone) { throw new ZoneIsAbstractError(); }; _createClass2(Zone2, [{ key: "type", get: function get2() { throw new ZoneIsAbstractError(); } }, { key: "name", get: function get2() { throw new ZoneIsAbstractError(); } }, { key: "ianaName", get: function get2() { return this.name; } }, { key: "isUniversal", get: function get2() { throw new ZoneIsAbstractError(); } }, { key: "isValid", get: function get2() { throw new ZoneIsAbstractError(); } }]); return Zone2; }(); var singleton$1 = null; var SystemZone = /* @__PURE__ */ function(_Zone) { _inheritsLoose(SystemZone2, _Zone); function SystemZone2() { return _Zone.apply(this, arguments) || this; } var _proto = SystemZone2.prototype; _proto.offsetName = function offsetName(ts, _ref) { var format2 = _ref.format, locale = _ref.locale; return parseZoneInfo(ts, format2, locale); }; _proto.formatOffset = function formatOffset$1(ts, format2) { return formatOffset(this.offset(ts), format2); }; _proto.offset = function offset3(ts) { return -new Date(ts).getTimezoneOffset(); }; _proto.equals = function equals(otherZone) { return otherZone.type === "system"; }; _createClass2(SystemZone2, [{ key: "type", get: function get2() { return "system"; } }, { key: "name", get: function get2() { return new Intl.DateTimeFormat().resolvedOptions().timeZone; } }, { key: "isUniversal", get: function get2() { return false; } }, { key: "isValid", get: function get2() { return true; } }], [{ key: "instance", get: function get2() { if (singleton$1 === null) { singleton$1 = new SystemZone2(); } return singleton$1; } }]); return SystemZone2; }(Zone); var dtfCache = {}; function makeDTF(zone) { if (!dtfCache[zone]) { dtfCache[zone] = new Intl.DateTimeFormat("en-US", { hour12: false, timeZone: zone, year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", era: "short" }); } return dtfCache[zone]; } var typeToPos = { year: 0, month: 1, day: 2, era: 3, hour: 4, minute: 5, second: 6 }; function hackyOffset(dtf, date) { var formatted = dtf.format(date).replace(/\u200E/g, ""), parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), fMonth = parsed[1], fDay = parsed[2], fYear = parsed[3], fadOrBc = parsed[4], fHour = parsed[5], fMinute = parsed[6], fSecond = parsed[7]; return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; } function partsOffset(dtf, date) { var formatted = dtf.formatToParts(date); var filled = []; for (var i2 = 0; i2 < formatted.length; i2++) { var _formatted$i = formatted[i2], type = _formatted$i.type, value = _formatted$i.value; var pos = typeToPos[type]; if (type === "era") { filled[pos] = value; } else if (!isUndefined(pos)) { filled[pos] = parseInt(value, 10); } } return filled; } var ianaZoneCache = {}; var IANAZone = /* @__PURE__ */ function(_Zone) { _inheritsLoose(IANAZone2, _Zone); IANAZone2.create = function create(name) { if (!ianaZoneCache[name]) { ianaZoneCache[name] = new IANAZone2(name); } return ianaZoneCache[name]; }; IANAZone2.resetCache = function resetCache() { ianaZoneCache = {}; dtfCache = {}; }; IANAZone2.isValidSpecifier = function isValidSpecifier(s3) { return this.isValidZone(s3); }; IANAZone2.isValidZone = function isValidZone(zone) { if (!zone) { return false; } try { new Intl.DateTimeFormat("en-US", { timeZone: zone }).format(); return true; } catch (e) { return false; } }; function IANAZone2(name) { var _this; _this = _Zone.call(this) || this; _this.zoneName = name; _this.valid = IANAZone2.isValidZone(name); return _this; } var _proto = IANAZone2.prototype; _proto.offsetName = function offsetName(ts, _ref) { var format2 = _ref.format, locale = _ref.locale; return parseZoneInfo(ts, format2, locale, this.name); }; _proto.formatOffset = function formatOffset$1(ts, format2) { return formatOffset(this.offset(ts), format2); }; _proto.offset = function offset3(ts) { var date = new Date(ts); if (isNaN(date)) return NaN; var dtf = makeDTF(this.name); var _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date), year = _ref2[0], month = _ref2[1], day = _ref2[2], adOrBc = _ref2[3], hour = _ref2[4], minute = _ref2[5], second = _ref2[6]; if (adOrBc === "BC") { year = -Math.abs(year) + 1; } var adjustedHour = hour === 24 ? 0 : hour; var asUTC = objToLocalTS({ year, month, day, hour: adjustedHour, minute, second, millisecond: 0 }); var asTS = +date; var over = asTS % 1e3; asTS -= over >= 0 ? over : 1e3 + over; return (asUTC - asTS) / (60 * 1e3); }; _proto.equals = function equals(otherZone) { return otherZone.type === "iana" && otherZone.name === this.name; }; _createClass2(IANAZone2, [{ key: "type", get: function get2() { return "iana"; } }, { key: "name", get: function get2() { return this.zoneName; } }, { key: "isUniversal", get: function get2() { return false; } }, { key: "isValid", get: function get2() { return this.valid; } }]); return IANAZone2; }(Zone); var singleton2 = null; var FixedOffsetZone = /* @__PURE__ */ function(_Zone) { _inheritsLoose(FixedOffsetZone2, _Zone); FixedOffsetZone2.instance = function instance113(offset3) { return offset3 === 0 ? FixedOffsetZone2.utcInstance : new FixedOffsetZone2(offset3); }; FixedOffsetZone2.parseSpecifier = function parseSpecifier(s3) { if (s3) { var r2 = s3.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i); if (r2) { return new FixedOffsetZone2(signedOffset(r2[1], r2[2])); } } return null; }; function FixedOffsetZone2(offset3) { var _this; _this = _Zone.call(this) || this; _this.fixed = offset3; return _this; } var _proto = FixedOffsetZone2.prototype; _proto.offsetName = function offsetName() { return this.name; }; _proto.formatOffset = function formatOffset$1(ts, format2) { return formatOffset(this.fixed, format2); }; _proto.offset = function offset3() { return this.fixed; }; _proto.equals = function equals(otherZone) { return otherZone.type === "fixed" && otherZone.fixed === this.fixed; }; _createClass2(FixedOffsetZone2, [{ key: "type", get: function get2() { return "fixed"; } }, { key: "name", get: function get2() { return this.fixed === 0 ? "UTC" : "UTC" + formatOffset(this.fixed, "narrow"); } }, { key: "ianaName", get: function get2() { if (this.fixed === 0) { return "Etc/UTC"; } else { return "Etc/GMT" + formatOffset(-this.fixed, "narrow"); } } }, { key: "isUniversal", get: function get2() { return true; } }, { key: "isValid", get: function get2() { return true; } }], [{ key: "utcInstance", get: function get2() { if (singleton2 === null) { singleton2 = new FixedOffsetZone2(0); } return singleton2; } }]); return FixedOffsetZone2; }(Zone); var InvalidZone = /* @__PURE__ */ function(_Zone) { _inheritsLoose(InvalidZone2, _Zone); function InvalidZone2(zoneName) { var _this; _this = _Zone.call(this) || this; _this.zoneName = zoneName; return _this; } var _proto = InvalidZone2.prototype; _proto.offsetName = function offsetName() { return null; }; _proto.formatOffset = function formatOffset2() { return ""; }; _proto.offset = function offset3() { return NaN; }; _proto.equals = function equals() { return false; }; _createClass2(InvalidZone2, [{ key: "type", get: function get2() { return "invalid"; } }, { key: "name", get: function get2() { return this.zoneName; } }, { key: "isUniversal", get: function get2() { return false; } }, { key: "isValid", get: function get2() { return false; } }]); return InvalidZone2; }(Zone); function normalizeZone(input, defaultZone2) { if (isUndefined(input) || input === null) { return defaultZone2; } else if (input instanceof Zone) { return input; } else if (isString2(input)) { var lowered = input.toLowerCase(); if (lowered === "local" || lowered === "system") return defaultZone2; else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance; else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); } else if (isNumber2(input)) { return FixedOffsetZone.instance(input); } else if (typeof input === "object" && input.offset && typeof input.offset === "number") { return input; } else { return new InvalidZone(input); } } var now2 = function now3() { return Date.now(); }; var defaultZone = "system"; var defaultLocale = null; var defaultNumberingSystem = null; var defaultOutputCalendar = null; var throwOnInvalid; var Settings = /* @__PURE__ */ function() { function Settings2() { } Settings2.resetCaches = function resetCaches() { Locale.resetCache(); IANAZone.resetCache(); }; _createClass2(Settings2, null, [{ key: "now", get: function get2() { return now2; }, set: function set2(n3) { now2 = n3; } }, { key: "defaultZone", get: function get2() { return normalizeZone(defaultZone, SystemZone.instance); }, set: function set2(zone) { defaultZone = zone; } }, { key: "defaultLocale", get: function get2() { return defaultLocale; }, set: function set2(locale) { defaultLocale = locale; } }, { key: "defaultNumberingSystem", get: function get2() { return defaultNumberingSystem; }, set: function set2(numberingSystem) { defaultNumberingSystem = numberingSystem; } }, { key: "defaultOutputCalendar", get: function get2() { return defaultOutputCalendar; }, set: function set2(outputCalendar) { defaultOutputCalendar = outputCalendar; } }, { key: "throwOnInvalid", get: function get2() { return throwOnInvalid; }, set: function set2(t3) { throwOnInvalid = t3; } }]); return Settings2; }(); var _excluded3 = ["base"]; var _excluded22 = ["padTo", "floor"]; var intlLFCache = {}; function getCachedLF(locString, opts) { if (opts === void 0) { opts = {}; } var key = JSON.stringify([locString, opts]); var dtf = intlLFCache[key]; if (!dtf) { dtf = new Intl.ListFormat(locString, opts); intlLFCache[key] = dtf; } return dtf; } var intlDTCache = {}; function getCachedDTF(locString, opts) { if (opts === void 0) { opts = {}; } var key = JSON.stringify([locString, opts]); var dtf = intlDTCache[key]; if (!dtf) { dtf = new Intl.DateTimeFormat(locString, opts); intlDTCache[key] = dtf; } return dtf; } var intlNumCache = {}; function getCachedINF(locString, opts) { if (opts === void 0) { opts = {}; } var key = JSON.stringify([locString, opts]); var inf = intlNumCache[key]; if (!inf) { inf = new Intl.NumberFormat(locString, opts); intlNumCache[key] = inf; } return inf; } var intlRelCache = {}; function getCachedRTF(locString, opts) { if (opts === void 0) { opts = {}; } var _opts = opts; _opts.base; var cacheKeyOpts = _objectWithoutPropertiesLoose3(_opts, _excluded3); var key = JSON.stringify([locString, cacheKeyOpts]); var inf = intlRelCache[key]; if (!inf) { inf = new Intl.RelativeTimeFormat(locString, opts); intlRelCache[key] = inf; } return inf; } var sysLocaleCache = null; function systemLocale() { if (sysLocaleCache) { return sysLocaleCache; } else { sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; return sysLocaleCache; } } function parseLocaleString(localeStr) { var uIndex = localeStr.indexOf("-u-"); if (uIndex === -1) { return [localeStr]; } else { var options; var smaller = localeStr.substring(0, uIndex); try { options = getCachedDTF(localeStr).resolvedOptions(); } catch (e) { options = getCachedDTF(smaller).resolvedOptions(); } var _options = options, numberingSystem = _options.numberingSystem, calendar = _options.calendar; return [smaller, numberingSystem, calendar]; } } function intlConfigString(localeStr, numberingSystem, outputCalendar) { if (outputCalendar || numberingSystem) { localeStr += "-u"; if (outputCalendar) { localeStr += "-ca-" + outputCalendar; } if (numberingSystem) { localeStr += "-nu-" + numberingSystem; } return localeStr; } else { return localeStr; } } function mapMonths(f2) { var ms = []; for (var i2 = 1; i2 <= 12; i2++) { var dt = DateTime.utc(2016, i2, 1); ms.push(f2(dt)); } return ms; } function mapWeekdays(f2) { var ms = []; for (var i2 = 1; i2 <= 7; i2++) { var dt = DateTime.utc(2016, 11, 13 + i2); ms.push(f2(dt)); } return ms; } function listStuff(loc, length, defaultOK, englishFn, intlFn) { var mode = loc.listingMode(defaultOK); if (mode === "error") { return null; } else if (mode === "en") { return englishFn(length); } else { return intlFn(length); } } function supportsFastNumbers(loc) { if (loc.numberingSystem && loc.numberingSystem !== "latn") { return false; } else { return loc.numberingSystem === "latn" || !loc.locale || loc.locale.startsWith("en") || new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn"; } } var PolyNumberFormatter = /* @__PURE__ */ function() { function PolyNumberFormatter2(intl, forceSimple, opts) { this.padTo = opts.padTo || 0; this.floor = opts.floor || false; opts.padTo; opts.floor; var otherOpts = _objectWithoutPropertiesLoose3(opts, _excluded22); if (!forceSimple || Object.keys(otherOpts).length > 0) { var intlOpts = _extends2({ useGrouping: false }, opts); if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo; this.inf = getCachedINF(intl, intlOpts); } } var _proto = PolyNumberFormatter2.prototype; _proto.format = function format2(i2) { if (this.inf) { var fixed = this.floor ? Math.floor(i2) : i2; return this.inf.format(fixed); } else { var _fixed = this.floor ? Math.floor(i2) : roundTo(i2, 3); return padStart(_fixed, this.padTo); } }; return PolyNumberFormatter2; }(); var PolyDateFormatter = /* @__PURE__ */ function() { function PolyDateFormatter2(dt, intl, opts) { this.opts = opts; var z2; if (dt.zone.isUniversal) { var gmtOffset = -1 * (dt.offset / 60); var offsetZ = gmtOffset >= 0 ? "Etc/GMT+" + gmtOffset : "Etc/GMT" + gmtOffset; if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { z2 = offsetZ; this.dt = dt; } else { z2 = "UTC"; if (opts.timeZoneName) { this.dt = dt; } else { this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1e3); } } } else if (dt.zone.type === "system") { this.dt = dt; } else { this.dt = dt; z2 = dt.zone.name; } var intlOpts = _extends2({}, this.opts); if (z2) { intlOpts.timeZone = z2; } this.dtf = getCachedDTF(intl, intlOpts); } var _proto2 = PolyDateFormatter2.prototype; _proto2.format = function format2() { return this.dtf.format(this.dt.toJSDate()); }; _proto2.formatToParts = function formatToParts() { return this.dtf.formatToParts(this.dt.toJSDate()); }; _proto2.resolvedOptions = function resolvedOptions() { return this.dtf.resolvedOptions(); }; return PolyDateFormatter2; }(); var PolyRelFormatter = /* @__PURE__ */ function() { function PolyRelFormatter2(intl, isEnglish, opts) { this.opts = _extends2({ style: "long" }, opts); if (!isEnglish && hasRelative()) { this.rtf = getCachedRTF(intl, opts); } } var _proto3 = PolyRelFormatter2.prototype; _proto3.format = function format2(count, unit) { if (this.rtf) { return this.rtf.format(count, unit); } else { return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== "long"); } }; _proto3.formatToParts = function formatToParts(count, unit) { if (this.rtf) { return this.rtf.formatToParts(count, unit); } else { return []; } }; return PolyRelFormatter2; }(); var Locale = /* @__PURE__ */ function() { Locale2.fromOpts = function fromOpts(opts) { return Locale2.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN); }; Locale2.create = function create(locale, numberingSystem, outputCalendar, defaultToEN) { if (defaultToEN === void 0) { defaultToEN = false; } var specifiedLocale = locale || Settings.defaultLocale; var localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); var numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; var outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; return new Locale2(localeR, numberingSystemR, outputCalendarR, specifiedLocale); }; Locale2.resetCache = function resetCache() { sysLocaleCache = null; intlDTCache = {}; intlNumCache = {}; intlRelCache = {}; }; Locale2.fromObject = function fromObject(_temp) { var _ref = _temp === void 0 ? {} : _temp, locale = _ref.locale, numberingSystem = _ref.numberingSystem, outputCalendar = _ref.outputCalendar; return Locale2.create(locale, numberingSystem, outputCalendar); }; function Locale2(locale, numbering, outputCalendar, specifiedLocale) { var _parseLocaleString = parseLocaleString(locale), parsedLocale = _parseLocaleString[0], parsedNumberingSystem = _parseLocaleString[1], parsedOutputCalendar = _parseLocaleString[2]; this.locale = parsedLocale; this.numberingSystem = numbering || parsedNumberingSystem || null; this.outputCalendar = outputCalendar || parsedOutputCalendar || null; this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar); this.weekdaysCache = { format: {}, standalone: {} }; this.monthsCache = { format: {}, standalone: {} }; this.meridiemCache = null; this.eraCache = {}; this.specifiedLocale = specifiedLocale; this.fastNumbersCached = null; } var _proto4 = Locale2.prototype; _proto4.listingMode = function listingMode() { var isActuallyEn = this.isEnglish(); var hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === "latn") && (this.outputCalendar === null || this.outputCalendar === "gregory"); return isActuallyEn && hasNoWeirdness ? "en" : "intl"; }; _proto4.clone = function clone3(alts) { if (!alts || Object.getOwnPropertyNames(alts).length === 0) { return this; } else { return Locale2.create(alts.locale || this.specifiedLocale, alts.numberingSystem || this.numberingSystem, alts.outputCalendar || this.outputCalendar, alts.defaultToEN || false); } }; _proto4.redefaultToEN = function redefaultToEN(alts) { if (alts === void 0) { alts = {}; } return this.clone(_extends2({}, alts, { defaultToEN: true })); }; _proto4.redefaultToSystem = function redefaultToSystem(alts) { if (alts === void 0) { alts = {}; } return this.clone(_extends2({}, alts, { defaultToEN: false })); }; _proto4.months = function months$1(length, format2, defaultOK) { var _this = this; if (format2 === void 0) { format2 = false; } if (defaultOK === void 0) { defaultOK = true; } return listStuff(this, length, defaultOK, months, function() { var intl = format2 ? { month: length, day: "numeric" } : { month: length }, formatStr = format2 ? "format" : "standalone"; if (!_this.monthsCache[formatStr][length]) { _this.monthsCache[formatStr][length] = mapMonths(function(dt) { return _this.extract(dt, intl, "month"); }); } return _this.monthsCache[formatStr][length]; }); }; _proto4.weekdays = function weekdays$1(length, format2, defaultOK) { var _this2 = this; if (format2 === void 0) { format2 = false; } if (defaultOK === void 0) { defaultOK = true; } return listStuff(this, length, defaultOK, weekdays, function() { var intl = format2 ? { weekday: length, year: "numeric", month: "long", day: "numeric" } : { weekday: length }, formatStr = format2 ? "format" : "standalone"; if (!_this2.weekdaysCache[formatStr][length]) { _this2.weekdaysCache[formatStr][length] = mapWeekdays(function(dt) { return _this2.extract(dt, intl, "weekday"); }); } return _this2.weekdaysCache[formatStr][length]; }); }; _proto4.meridiems = function meridiems$1(defaultOK) { var _this3 = this; if (defaultOK === void 0) { defaultOK = true; } return listStuff(this, void 0, defaultOK, function() { return meridiems; }, function() { if (!_this3.meridiemCache) { var intl = { hour: "numeric", hourCycle: "h12" }; _this3.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(function(dt) { return _this3.extract(dt, intl, "dayperiod"); }); } return _this3.meridiemCache; }); }; _proto4.eras = function eras$1(length, defaultOK) { var _this4 = this; if (defaultOK === void 0) { defaultOK = true; } return listStuff(this, length, defaultOK, eras, function() { var intl = { era: length }; if (!_this4.eraCache[length]) { _this4.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(function(dt) { return _this4.extract(dt, intl, "era"); }); } return _this4.eraCache[length]; }); }; _proto4.extract = function extract2(dt, intlOpts, field) { var df = this.dtFormatter(dt, intlOpts), results = df.formatToParts(), matching = results.find(function(m) { return m.type.toLowerCase() === field; }); return matching ? matching.value : null; }; _proto4.numberFormatter = function numberFormatter(opts) { if (opts === void 0) { opts = {}; } return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts); }; _proto4.dtFormatter = function dtFormatter(dt, intlOpts) { if (intlOpts === void 0) { intlOpts = {}; } return new PolyDateFormatter(dt, this.intl, intlOpts); }; _proto4.relFormatter = function relFormatter(opts) { if (opts === void 0) { opts = {}; } return new PolyRelFormatter(this.intl, this.isEnglish(), opts); }; _proto4.listFormatter = function listFormatter(opts) { if (opts === void 0) { opts = {}; } return getCachedLF(this.intl, opts); }; _proto4.isEnglish = function isEnglish() { return this.locale === "en" || this.locale.toLowerCase() === "en-us" || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us"); }; _proto4.equals = function equals(other) { return this.locale === other.locale && this.numberingSystem === other.numberingSystem && this.outputCalendar === other.outputCalendar; }; _createClass2(Locale2, [{ key: "fastNumbers", get: function get2() { if (this.fastNumbersCached == null) { this.fastNumbersCached = supportsFastNumbers(this); } return this.fastNumbersCached; } }]); return Locale2; }(); function combineRegexes() { for (var _len = arguments.length, regexes = new Array(_len), _key = 0; _key < _len; _key++) { regexes[_key] = arguments[_key]; } var full = regexes.reduce(function(f2, r2) { return f2 + r2.source; }, ""); return RegExp("^" + full + "$"); } function combineExtractors() { for (var _len2 = arguments.length, extractors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { extractors[_key2] = arguments[_key2]; } return function(m) { return extractors.reduce(function(_ref, ex) { var mergedVals = _ref[0], mergedZone = _ref[1], cursor = _ref[2]; var _ex = ex(m, cursor), val = _ex[0], zone = _ex[1], next2 = _ex[2]; return [_extends2({}, mergedVals, val), zone || mergedZone, next2]; }, [{}, null, 1]).slice(0, 2); }; } function parse2(s3) { if (s3 == null) { return [null, null]; } for (var _len3 = arguments.length, patterns = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { patterns[_key3 - 1] = arguments[_key3]; } for (var _i = 0, _patterns = patterns; _i < _patterns.length; _i++) { var _patterns$_i = _patterns[_i], regex = _patterns$_i[0], extractor = _patterns$_i[1]; var m = regex.exec(s3); if (m) { return extractor(m); } } return [null, null]; } function simpleParse() { for (var _len4 = arguments.length, keys = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { keys[_key4] = arguments[_key4]; } return function(match7, cursor) { var ret = {}; var i2; for (i2 = 0; i2 < keys.length; i2++) { ret[keys[i2]] = parseInteger(match7[cursor + i2]); } return [ret, null, cursor + i2]; }; } var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/; var isoExtendedZone = "(?:" + offsetRegex.source + "?(?:\\[(" + ianaRegex.source + ")\\])?)?"; var isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; var isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + isoExtendedZone); var isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"); var isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; var isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; var isoOrdinalRegex = /(\d{4})-?(\d{3})/; var extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); var extractISOOrdinalData = simpleParse("year", "ordinal"); var sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; var sqlTimeRegex = RegExp(isoTimeBaseRegex.source + " ?(?:" + offsetRegex.source + "|(" + ianaRegex.source + "))?"); var sqlTimeExtensionRegex = RegExp("(?: " + sqlTimeRegex.source + ")?"); function int3(match7, pos, fallback) { var m = match7[pos]; return isUndefined(m) ? fallback : parseInteger(m); } function extractISOYmd(match7, cursor) { var item = { year: int3(match7, cursor), month: int3(match7, cursor + 1, 1), day: int3(match7, cursor + 2, 1) }; return [item, null, cursor + 3]; } function extractISOTime(match7, cursor) { var item = { hours: int3(match7, cursor, 0), minutes: int3(match7, cursor + 1, 0), seconds: int3(match7, cursor + 2, 0), milliseconds: parseMillis(match7[cursor + 3]) }; return [item, null, cursor + 4]; } function extractISOOffset(match7, cursor) { var local = !match7[cursor] && !match7[cursor + 1], fullOffset = signedOffset(match7[cursor + 1], match7[cursor + 2]), zone = local ? null : FixedOffsetZone.instance(fullOffset); return [{}, zone, cursor + 3]; } function extractIANAZone(match7, cursor) { var zone = match7[cursor] ? IANAZone.create(match7[cursor]) : null; return [{}, zone, cursor + 1]; } var isoTimeOnly = RegExp("^T?" + isoTimeBaseRegex.source + "$"); var isoDuration = /^-?P(?:(?:(-?\d{1,9}(?:\.\d{1,9})?)Y)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,9}(?:\.\d{1,9})?)W)?(?:(-?\d{1,9}(?:\.\d{1,9})?)D)?(?:T(?:(-?\d{1,9}(?:\.\d{1,9})?)H)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,9}))?S)?)?)$/; function extractISODuration(match7) { var s3 = match7[0], yearStr = match7[1], monthStr = match7[2], weekStr = match7[3], dayStr = match7[4], hourStr = match7[5], minuteStr = match7[6], secondStr = match7[7], millisecondsStr = match7[8]; var hasNegativePrefix = s3[0] === "-"; var negativeSeconds = secondStr && secondStr[0] === "-"; var maybeNegate = function maybeNegate2(num, force) { if (force === void 0) { force = false; } return num !== void 0 && (force || num && hasNegativePrefix) ? -num : num; }; return [{ years: maybeNegate(parseFloating(yearStr)), months: maybeNegate(parseFloating(monthStr)), weeks: maybeNegate(parseFloating(weekStr)), days: maybeNegate(parseFloating(dayStr)), hours: maybeNegate(parseFloating(hourStr)), minutes: maybeNegate(parseFloating(minuteStr)), seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds) }]; } var obsOffsets = { GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result = { year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr), month: monthsShort.indexOf(monthStr) + 1, day: parseInteger(dayStr), hour: parseInteger(hourStr), minute: parseInteger(minuteStr) }; if (secondStr) result.second = parseInteger(secondStr); if (weekdayStr) { result.weekday = weekdayStr.length > 3 ? weekdaysLong.indexOf(weekdayStr) + 1 : weekdaysShort.indexOf(weekdayStr) + 1; } return result; } var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/; function extractRFC2822(match7) { var weekdayStr = match7[1], dayStr = match7[2], monthStr = match7[3], yearStr = match7[4], hourStr = match7[5], minuteStr = match7[6], secondStr = match7[7], obsOffset = match7[8], milOffset = match7[9], offHourStr = match7[10], offMinuteStr = match7[11], result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); var offset3; if (obsOffset) { offset3 = obsOffsets[obsOffset]; } else if (milOffset) { offset3 = 0; } else { offset3 = signedOffset(offHourStr, offMinuteStr); } return [result, new FixedOffsetZone(offset3)]; } function preprocessRFC2822(s3) { return s3.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").trim(); } var rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/; var rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/; var ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/; function extractRFC1123Or850(match7) { var weekdayStr = match7[1], dayStr = match7[2], monthStr = match7[3], yearStr = match7[4], hourStr = match7[5], minuteStr = match7[6], secondStr = match7[7], result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); return [result, FixedOffsetZone.utcInstance]; } function extractASCII(match7) { var weekdayStr = match7[1], monthStr = match7[2], dayStr = match7[3], hourStr = match7[4], minuteStr = match7[5], secondStr = match7[6], yearStr = match7[7], result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr); return [result, FixedOffsetZone.utcInstance]; } var isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex); var isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); var isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); var isoTimeCombinedRegex = combineRegexes(isoTimeRegex); var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone); var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone); var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone); var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); function parseISODate(s3) { return parse2(s3, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]); } function parseRFC2822Date(s3) { return parse2(preprocessRFC2822(s3), [rfc2822, extractRFC2822]); } function parseHTTPDate(s3) { return parse2(s3, [rfc1123, extractRFC1123Or850], [rfc850, extractRFC1123Or850], [ascii, extractASCII]); } function parseISODuration(s3) { return parse2(s3, [isoDuration, extractISODuration]); } var extractISOTimeOnly = combineExtractors(extractISOTime); function parseISOTimeOnly(s3) { return parse2(s3, [isoTimeOnly, extractISOTimeOnly]); } var sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); var sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); var extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); function parseSQL(s3) { return parse2(s3, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]); } var INVALID$2 = "Invalid Duration"; var lowOrderMatrix = { weeks: { days: 7, hours: 7 * 24, minutes: 7 * 24 * 60, seconds: 7 * 24 * 60 * 60, milliseconds: 7 * 24 * 60 * 60 * 1e3 }, days: { hours: 24, minutes: 24 * 60, seconds: 24 * 60 * 60, milliseconds: 24 * 60 * 60 * 1e3 }, hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1e3 }, minutes: { seconds: 60, milliseconds: 60 * 1e3 }, seconds: { milliseconds: 1e3 } }; var casualMatrix = _extends2({ years: { quarters: 4, months: 12, weeks: 52, days: 365, hours: 365 * 24, minutes: 365 * 24 * 60, seconds: 365 * 24 * 60 * 60, milliseconds: 365 * 24 * 60 * 60 * 1e3 }, quarters: { months: 3, weeks: 13, days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1e3 }, months: { weeks: 4, days: 30, hours: 30 * 24, minutes: 30 * 24 * 60, seconds: 30 * 24 * 60 * 60, milliseconds: 30 * 24 * 60 * 60 * 1e3 } }, lowOrderMatrix); var daysInYearAccurate = 146097 / 400; var daysInMonthAccurate = 146097 / 4800; var accurateMatrix = _extends2({ years: { quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, hours: daysInYearAccurate * 24, minutes: daysInYearAccurate * 24 * 60, seconds: daysInYearAccurate * 24 * 60 * 60, milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 }, quarters: { months: 3, weeks: daysInYearAccurate / 28, days: daysInYearAccurate / 4, hours: daysInYearAccurate * 24 / 4, minutes: daysInYearAccurate * 24 * 60 / 4, seconds: daysInYearAccurate * 24 * 60 * 60 / 4, milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1e3 / 4 }, months: { weeks: daysInMonthAccurate / 7, days: daysInMonthAccurate, hours: daysInMonthAccurate * 24, minutes: daysInMonthAccurate * 24 * 60, seconds: daysInMonthAccurate * 24 * 60 * 60, milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1e3 } }, lowOrderMatrix); var orderedUnits$1 = ["years", "quarters", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"]; var reverseUnits = orderedUnits$1.slice(0).reverse(); function clone$1(dur, alts, clear) { if (clear === void 0) { clear = false; } var conf = { values: clear ? alts.values : _extends2({}, dur.values, alts.values || {}), loc: dur.loc.clone(alts.loc), conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy }; return new Duration(conf); } function antiTrunc(n3) { return n3 < 0 ? Math.floor(n3) : Math.ceil(n3); } function convert(matrix2, fromMap, fromUnit, toMap, toUnit) { var conv = matrix2[toUnit][fromUnit], raw = fromMap[fromUnit] / conv, sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]), added = !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw); toMap[toUnit] += added; fromMap[fromUnit] -= added * conv; } function normalizeValues(matrix2, vals) { reverseUnits.reduce(function(previous, current) { if (!isUndefined(vals[current])) { if (previous) { convert(matrix2, vals, previous, vals, current); } return current; } else { return previous; } }, null); } var Duration = /* @__PURE__ */ function() { function Duration2(config) { var accurate = config.conversionAccuracy === "longterm" || false; this.values = config.values; this.loc = config.loc || Locale.create(); this.conversionAccuracy = accurate ? "longterm" : "casual"; this.invalid = config.invalid || null; this.matrix = accurate ? accurateMatrix : casualMatrix; this.isLuxonDuration = true; } Duration2.fromMillis = function fromMillis(count, opts) { return Duration2.fromObject({ milliseconds: count }, opts); }; Duration2.fromObject = function fromObject(obj, opts) { if (opts === void 0) { opts = {}; } if (obj == null || typeof obj !== "object") { throw new InvalidArgumentError("Duration.fromObject: argument expected to be an object, got " + (obj === null ? "null" : typeof obj)); } return new Duration2({ values: normalizeObject(obj, Duration2.normalizeUnit), loc: Locale.fromObject(opts), conversionAccuracy: opts.conversionAccuracy }); }; Duration2.fromDurationLike = function fromDurationLike(durationLike) { if (isNumber2(durationLike)) { return Duration2.fromMillis(durationLike); } else if (Duration2.isDuration(durationLike)) { return durationLike; } else if (typeof durationLike === "object") { return Duration2.fromObject(durationLike); } else { throw new InvalidArgumentError("Unknown duration argument " + durationLike + " of type " + typeof durationLike); } }; Duration2.fromISO = function fromISO(text2, opts) { var _parseISODuration = parseISODuration(text2), parsed = _parseISODuration[0]; if (parsed) { return Duration2.fromObject(parsed, opts); } else { return Duration2.invalid("unparsable", 'the input "' + text2 + `" can't be parsed as ISO 8601`); } }; Duration2.fromISOTime = function fromISOTime(text2, opts) { var _parseISOTimeOnly = parseISOTimeOnly(text2), parsed = _parseISOTimeOnly[0]; if (parsed) { return Duration2.fromObject(parsed, opts); } else { return Duration2.invalid("unparsable", 'the input "' + text2 + `" can't be parsed as ISO 8601`); } }; Duration2.invalid = function invalid(reason, explanation) { if (explanation === void 0) { explanation = null; } if (!reason) { throw new InvalidArgumentError("need to specify a reason the Duration is invalid"); } var invalid2 = reason instanceof Invalid ? reason : new Invalid(reason, explanation); if (Settings.throwOnInvalid) { throw new InvalidDurationError(invalid2); } else { return new Duration2({ invalid: invalid2 }); } }; Duration2.normalizeUnit = function normalizeUnit2(unit) { var normalized = { year: "years", years: "years", quarter: "quarters", quarters: "quarters", month: "months", months: "months", week: "weeks", weeks: "weeks", day: "days", days: "days", hour: "hours", hours: "hours", minute: "minutes", minutes: "minutes", second: "seconds", seconds: "seconds", millisecond: "milliseconds", milliseconds: "milliseconds" }[unit ? unit.toLowerCase() : unit]; if (!normalized) throw new InvalidUnitError(unit); return normalized; }; Duration2.isDuration = function isDuration(o2) { return o2 && o2.isLuxonDuration || false; }; var _proto = Duration2.prototype; _proto.toFormat = function toFormat(fmt, opts) { if (opts === void 0) { opts = {}; } var fmtOpts = _extends2({}, opts, { floor: opts.round !== false && opts.floor !== false }); return this.isValid ? Formatter2.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2; }; _proto.toHuman = function toHuman(opts) { var _this = this; if (opts === void 0) { opts = {}; } var l3 = orderedUnits$1.map(function(unit) { var val = _this.values[unit]; if (isUndefined(val)) { return null; } return _this.loc.numberFormatter(_extends2({ style: "unit", unitDisplay: "long" }, opts, { unit: unit.slice(0, -1) })).format(val); }).filter(function(n3) { return n3; }); return this.loc.listFormatter(_extends2({ type: "conjunction", style: opts.listStyle || "narrow" }, opts)).format(l3); }; _proto.toObject = function toObject() { if (!this.isValid) return {}; return _extends2({}, this.values); }; _proto.toISO = function toISO() { if (!this.isValid) return null; var s3 = "P"; if (this.years !== 0) s3 += this.years + "Y"; if (this.months !== 0 || this.quarters !== 0) s3 += this.months + this.quarters * 3 + "M"; if (this.weeks !== 0) s3 += this.weeks + "W"; if (this.days !== 0) s3 += this.days + "D"; if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0) s3 += "T"; if (this.hours !== 0) s3 += this.hours + "H"; if (this.minutes !== 0) s3 += this.minutes + "M"; if (this.seconds !== 0 || this.milliseconds !== 0) s3 += roundTo(this.seconds + this.milliseconds / 1e3, 3) + "S"; if (s3 === "P") s3 += "T0S"; return s3; }; _proto.toISOTime = function toISOTime(opts) { if (opts === void 0) { opts = {}; } if (!this.isValid) return null; var millis = this.toMillis(); if (millis < 0 || millis >= 864e5) return null; opts = _extends2({ suppressMilliseconds: false, suppressSeconds: false, includePrefix: false, format: "extended" }, opts); var value = this.shiftTo("hours", "minutes", "seconds", "milliseconds"); var fmt = opts.format === "basic" ? "hhmm" : "hh:mm"; if (!opts.suppressSeconds || value.seconds !== 0 || value.milliseconds !== 0) { fmt += opts.format === "basic" ? "ss" : ":ss"; if (!opts.suppressMilliseconds || value.milliseconds !== 0) { fmt += ".SSS"; } } var str = value.toFormat(fmt); if (opts.includePrefix) { str = "T" + str; } return str; }; _proto.toJSON = function toJSON() { return this.toISO(); }; _proto.toString = function toString2() { return this.toISO(); }; _proto.toMillis = function toMillis() { return this.as("milliseconds"); }; _proto.valueOf = function valueOf() { return this.toMillis(); }; _proto.plus = function plus(duration) { if (!this.isValid) return this; var dur = Duration2.fromDurationLike(duration), result = {}; for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits$1), _step; !(_step = _iterator()).done; ) { var k2 = _step.value; if (hasOwnProperty(dur.values, k2) || hasOwnProperty(this.values, k2)) { result[k2] = dur.get(k2) + this.get(k2); } } return clone$1(this, { values: result }, true); }; _proto.minus = function minus(duration) { if (!this.isValid) return this; var dur = Duration2.fromDurationLike(duration); return this.plus(dur.negate()); }; _proto.mapUnits = function mapUnits(fn3) { if (!this.isValid) return this; var result = {}; for (var _i = 0, _Object$keys = Object.keys(this.values); _i < _Object$keys.length; _i++) { var k2 = _Object$keys[_i]; result[k2] = asNumber(fn3(this.values[k2], k2)); } return clone$1(this, { values: result }, true); }; _proto.get = function get2(unit) { return this[Duration2.normalizeUnit(unit)]; }; _proto.set = function set2(values) { if (!this.isValid) return this; var mixed = _extends2({}, this.values, normalizeObject(values, Duration2.normalizeUnit)); return clone$1(this, { values: mixed }); }; _proto.reconfigure = function reconfigure(_temp) { var _ref = _temp === void 0 ? {} : _temp, locale = _ref.locale, numberingSystem = _ref.numberingSystem, conversionAccuracy = _ref.conversionAccuracy; var loc = this.loc.clone({ locale, numberingSystem }), opts = { loc }; if (conversionAccuracy) { opts.conversionAccuracy = conversionAccuracy; } return clone$1(this, opts); }; _proto.as = function as(unit) { return this.isValid ? this.shiftTo(unit).get(unit) : NaN; }; _proto.normalize = function normalize() { if (!this.isValid) return this; var vals = this.toObject(); normalizeValues(this.matrix, vals); return clone$1(this, { values: vals }, true); }; _proto.shiftTo = function shiftTo() { for (var _len = arguments.length, units = new Array(_len), _key = 0; _key < _len; _key++) { units[_key] = arguments[_key]; } if (!this.isValid) return this; if (units.length === 0) { return this; } units = units.map(function(u2) { return Duration2.normalizeUnit(u2); }); var built = {}, accumulated = {}, vals = this.toObject(); var lastUnit; for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits$1), _step2; !(_step2 = _iterator2()).done; ) { var k2 = _step2.value; if (units.indexOf(k2) >= 0) { lastUnit = k2; var own = 0; for (var ak in accumulated) { own += this.matrix[ak][k2] * accumulated[ak]; accumulated[ak] = 0; } if (isNumber2(vals[k2])) { own += vals[k2]; } var i2 = Math.trunc(own); built[k2] = i2; accumulated[k2] = (own * 1e3 - i2 * 1e3) / 1e3; for (var down in vals) { if (orderedUnits$1.indexOf(down) > orderedUnits$1.indexOf(k2)) { convert(this.matrix, vals, down, built, k2); } } } else if (isNumber2(vals[k2])) { accumulated[k2] = vals[k2]; } } for (var key in accumulated) { if (accumulated[key] !== 0) { built[lastUnit] += key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key]; } } return clone$1(this, { values: built }, true).normalize(); }; _proto.negate = function negate() { if (!this.isValid) return this; var negated = {}; for (var _i2 = 0, _Object$keys2 = Object.keys(this.values); _i2 < _Object$keys2.length; _i2++) { var k2 = _Object$keys2[_i2]; negated[k2] = this.values[k2] === 0 ? 0 : -this.values[k2]; } return clone$1(this, { values: negated }, true); }; _proto.equals = function equals(other) { if (!this.isValid || !other.isValid) { return false; } if (!this.loc.equals(other.loc)) { return false; } function eq(v1, v2) { if (v1 === void 0 || v1 === 0) return v2 === void 0 || v2 === 0; return v1 === v2; } for (var _iterator3 = _createForOfIteratorHelperLoose(orderedUnits$1), _step3; !(_step3 = _iterator3()).done; ) { var u2 = _step3.value; if (!eq(this.values[u2], other.values[u2])) { return false; } } return true; }; _createClass2(Duration2, [{ key: "locale", get: function get2() { return this.isValid ? this.loc.locale : null; } }, { key: "numberingSystem", get: function get2() { return this.isValid ? this.loc.numberingSystem : null; } }, { key: "years", get: function get2() { return this.isValid ? this.values.years || 0 : NaN; } }, { key: "quarters", get: function get2() { return this.isValid ? this.values.quarters || 0 : NaN; } }, { key: "months", get: function get2() { return this.isValid ? this.values.months || 0 : NaN; } }, { key: "weeks", get: function get2() { return this.isValid ? this.values.weeks || 0 : NaN; } }, { key: "days", get: function get2() { return this.isValid ? this.values.days || 0 : NaN; } }, { key: "hours", get: function get2() { return this.isValid ? this.values.hours || 0 : NaN; } }, { key: "minutes", get: function get2() { return this.isValid ? this.values.minutes || 0 : NaN; } }, { key: "seconds", get: function get2() { return this.isValid ? this.values.seconds || 0 : NaN; } }, { key: "milliseconds", get: function get2() { return this.isValid ? this.values.milliseconds || 0 : NaN; } }, { key: "isValid", get: function get2() { return this.invalid === null; } }, { key: "invalidReason", get: function get2() { return this.invalid ? this.invalid.reason : null; } }, { key: "invalidExplanation", get: function get2() { return this.invalid ? this.invalid.explanation : null; } }]); return Duration2; }(); var INVALID$1 = "Invalid Interval"; function validateStartEnd(start2, end2) { if (!start2 || !start2.isValid) { return Interval.invalid("missing or invalid start"); } else if (!end2 || !end2.isValid) { return Interval.invalid("missing or invalid end"); } else if (end2 < start2) { return Interval.invalid("end before start", "The end of an interval must be after its start, but you had start=" + start2.toISO() + " and end=" + end2.toISO()); } else { return null; } } var Interval = /* @__PURE__ */ function() { function Interval2(config) { this.s = config.start; this.e = config.end; this.invalid = config.invalid || null; this.isLuxonInterval = true; } Interval2.invalid = function invalid(reason, explanation) { if (explanation === void 0) { explanation = null; } if (!reason) { throw new InvalidArgumentError("need to specify a reason the Interval is invalid"); } var invalid2 = reason instanceof Invalid ? reason : new Invalid(reason, explanation); if (Settings.throwOnInvalid) { throw new InvalidIntervalError(invalid2); } else { return new Interval2({ invalid: invalid2 }); } }; Interval2.fromDateTimes = function fromDateTimes(start2, end2) { var builtStart = friendlyDateTime(start2), builtEnd = friendlyDateTime(end2); var validateError = validateStartEnd(builtStart, builtEnd); if (validateError == null) { return new Interval2({ start: builtStart, end: builtEnd }); } else { return validateError; } }; Interval2.after = function after(start2, duration) { var dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(start2); return Interval2.fromDateTimes(dt, dt.plus(dur)); }; Interval2.before = function before(end2, duration) { var dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(end2); return Interval2.fromDateTimes(dt.minus(dur), dt); }; Interval2.fromISO = function fromISO(text2, opts) { var _split = (text2 || "").split("/", 2), s3 = _split[0], e = _split[1]; if (s3 && e) { var start2, startIsValid; try { start2 = DateTime.fromISO(s3, opts); startIsValid = start2.isValid; } catch (e2) { startIsValid = false; } var end2, endIsValid; try { end2 = DateTime.fromISO(e, opts); endIsValid = end2.isValid; } catch (e2) { endIsValid = false; } if (startIsValid && endIsValid) { return Interval2.fromDateTimes(start2, end2); } if (startIsValid) { var dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval2.after(start2, dur); } } else if (endIsValid) { var _dur = Duration.fromISO(s3, opts); if (_dur.isValid) { return Interval2.before(end2, _dur); } } } return Interval2.invalid("unparsable", 'the input "' + text2 + `" can't be parsed as ISO 8601`); }; Interval2.isInterval = function isInterval(o2) { return o2 && o2.isLuxonInterval || false; }; var _proto = Interval2.prototype; _proto.length = function length(unit) { if (unit === void 0) { unit = "milliseconds"; } return this.isValid ? this.toDuration.apply(this, [unit]).get(unit) : NaN; }; _proto.count = function count(unit) { if (unit === void 0) { unit = "milliseconds"; } if (!this.isValid) return NaN; var start2 = this.start.startOf(unit), end2 = this.end.startOf(unit); return Math.floor(end2.diff(start2, unit).get(unit)) + 1; }; _proto.hasSame = function hasSame(unit) { return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; }; _proto.isEmpty = function isEmpty3() { return this.s.valueOf() === this.e.valueOf(); }; _proto.isAfter = function isAfter(dateTime) { if (!this.isValid) return false; return this.s > dateTime; }; _proto.isBefore = function isBefore(dateTime) { if (!this.isValid) return false; return this.e <= dateTime; }; _proto.contains = function contains2(dateTime) { if (!this.isValid) return false; return this.s <= dateTime && this.e > dateTime; }; _proto.set = function set2(_temp) { var _ref = _temp === void 0 ? {} : _temp, start2 = _ref.start, end2 = _ref.end; if (!this.isValid) return this; return Interval2.fromDateTimes(start2 || this.s, end2 || this.e); }; _proto.splitAt = function splitAt4() { var _this = this; if (!this.isValid) return []; for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) { dateTimes[_key] = arguments[_key]; } var sorted = dateTimes.map(friendlyDateTime).filter(function(d2) { return _this.contains(d2); }).sort(), results = []; var s3 = this.s, i2 = 0; while (s3 < this.e) { var added = sorted[i2] || this.e, next2 = +added > +this.e ? this.e : added; results.push(Interval2.fromDateTimes(s3, next2)); s3 = next2; i2 += 1; } return results; }; _proto.splitBy = function splitBy(duration) { var dur = Duration.fromDurationLike(duration); if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { return []; } var s3 = this.s, idx = 1, next2; var results = []; while (s3 < this.e) { var added = this.start.plus(dur.mapUnits(function(x2) { return x2 * idx; })); next2 = +added > +this.e ? this.e : added; results.push(Interval2.fromDateTimes(s3, next2)); s3 = next2; idx += 1; } return results; }; _proto.divideEqually = function divideEqually(numberOfParts) { if (!this.isValid) return []; return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts); }; _proto.overlaps = function overlaps(other) { return this.e > other.s && this.s < other.e; }; _proto.abutsStart = function abutsStart(other) { if (!this.isValid) return false; return +this.e === +other.s; }; _proto.abutsEnd = function abutsEnd(other) { if (!this.isValid) return false; return +other.e === +this.s; }; _proto.engulfs = function engulfs(other) { if (!this.isValid) return false; return this.s <= other.s && this.e >= other.e; }; _proto.equals = function equals(other) { if (!this.isValid || !other.isValid) { return false; } return this.s.equals(other.s) && this.e.equals(other.e); }; _proto.intersection = function intersection2(other) { if (!this.isValid) return this; var s3 = this.s > other.s ? this.s : other.s, e = this.e < other.e ? this.e : other.e; if (s3 >= e) { return null; } else { return Interval2.fromDateTimes(s3, e); } }; _proto.union = function union4(other) { if (!this.isValid) return this; var s3 = this.s < other.s ? this.s : other.s, e = this.e > other.e ? this.e : other.e; return Interval2.fromDateTimes(s3, e); }; Interval2.merge = function merge(intervals) { var _intervals$sort$reduc = intervals.sort(function(a2, b2) { return a2.s - b2.s; }).reduce(function(_ref2, item) { var sofar = _ref2[0], current = _ref2[1]; if (!current) { return [sofar, item]; } else if (current.overlaps(item) || current.abutsStart(item)) { return [sofar, current.union(item)]; } else { return [sofar.concat([current]), item]; } }, [[], null]), found = _intervals$sort$reduc[0], final = _intervals$sort$reduc[1]; if (final) { found.push(final); } return found; }; Interval2.xor = function xor(intervals) { var _Array$prototype; var start2 = null, currentCount = 0; var results = [], ends = intervals.map(function(i3) { return [{ time: i3.s, type: "s" }, { time: i3.e, type: "e" }]; }), flattened = (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, ends), arr = flattened.sort(function(a2, b2) { return a2.time - b2.time; }); for (var _iterator = _createForOfIteratorHelperLoose(arr), _step; !(_step = _iterator()).done; ) { var i2 = _step.value; currentCount += i2.type === "s" ? 1 : -1; if (currentCount === 1) { start2 = i2.time; } else { if (start2 && +start2 !== +i2.time) { results.push(Interval2.fromDateTimes(start2, i2.time)); } start2 = null; } } return Interval2.merge(results); }; _proto.difference = function difference2() { var _this2 = this; for (var _len2 = arguments.length, intervals = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { intervals[_key2] = arguments[_key2]; } return Interval2.xor([this].concat(intervals)).map(function(i2) { return _this2.intersection(i2); }).filter(function(i2) { return i2 && !i2.isEmpty(); }); }; _proto.toString = function toString2() { if (!this.isValid) return INVALID$1; return "[" + this.s.toISO() + " \u2013 " + this.e.toISO() + ")"; }; _proto.toISO = function toISO(opts) { if (!this.isValid) return INVALID$1; return this.s.toISO(opts) + "/" + this.e.toISO(opts); }; _proto.toISODate = function toISODate() { if (!this.isValid) return INVALID$1; return this.s.toISODate() + "/" + this.e.toISODate(); }; _proto.toISOTime = function toISOTime(opts) { if (!this.isValid) return INVALID$1; return this.s.toISOTime(opts) + "/" + this.e.toISOTime(opts); }; _proto.toFormat = function toFormat(dateFormat, _temp2) { var _ref3 = _temp2 === void 0 ? {} : _temp2, _ref3$separator = _ref3.separator, separator = _ref3$separator === void 0 ? " \u2013 " : _ref3$separator; if (!this.isValid) return INVALID$1; return "" + this.s.toFormat(dateFormat) + separator + this.e.toFormat(dateFormat); }; _proto.toDuration = function toDuration(unit, opts) { if (!this.isValid) { return Duration.invalid(this.invalidReason); } return this.e.diff(this.s, unit, opts); }; _proto.mapEndpoints = function mapEndpoints(mapFn) { return Interval2.fromDateTimes(mapFn(this.s), mapFn(this.e)); }; _createClass2(Interval2, [{ key: "start", get: function get2() { return this.isValid ? this.s : null; } }, { key: "end", get: function get2() { return this.isValid ? this.e : null; } }, { key: "isValid", get: function get2() { return this.invalidReason === null; } }, { key: "invalidReason", get: function get2() { return this.invalid ? this.invalid.reason : null; } }, { key: "invalidExplanation", get: function get2() { return this.invalid ? this.invalid.explanation : null; } }]); return Interval2; }(); var Info = /* @__PURE__ */ function() { function Info2() { } Info2.hasDST = function hasDST(zone) { if (zone === void 0) { zone = Settings.defaultZone; } var proto = DateTime.now().setZone(zone).set({ month: 12 }); return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset; }; Info2.isValidIANAZone = function isValidIANAZone(zone) { return IANAZone.isValidZone(zone); }; Info2.normalizeZone = function normalizeZone$1(input) { return normalizeZone(input, Settings.defaultZone); }; Info2.months = function months2(length, _temp) { if (length === void 0) { length = "long"; } var _ref = _temp === void 0 ? {} : _temp, _ref$locale = _ref.locale, locale = _ref$locale === void 0 ? null : _ref$locale, _ref$numberingSystem = _ref.numberingSystem, numberingSystem = _ref$numberingSystem === void 0 ? null : _ref$numberingSystem, _ref$locObj = _ref.locObj, locObj = _ref$locObj === void 0 ? null : _ref$locObj, _ref$outputCalendar = _ref.outputCalendar, outputCalendar = _ref$outputCalendar === void 0 ? "gregory" : _ref$outputCalendar; return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); }; Info2.monthsFormat = function monthsFormat(length, _temp2) { if (length === void 0) { length = "long"; } var _ref2 = _temp2 === void 0 ? {} : _temp2, _ref2$locale = _ref2.locale, locale = _ref2$locale === void 0 ? null : _ref2$locale, _ref2$numberingSystem = _ref2.numberingSystem, numberingSystem = _ref2$numberingSystem === void 0 ? null : _ref2$numberingSystem, _ref2$locObj = _ref2.locObj, locObj = _ref2$locObj === void 0 ? null : _ref2$locObj, _ref2$outputCalendar = _ref2.outputCalendar, outputCalendar = _ref2$outputCalendar === void 0 ? "gregory" : _ref2$outputCalendar; return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); }; Info2.weekdays = function weekdays2(length, _temp3) { if (length === void 0) { length = "long"; } var _ref3 = _temp3 === void 0 ? {} : _temp3, _ref3$locale = _ref3.locale, locale = _ref3$locale === void 0 ? null : _ref3$locale, _ref3$numberingSystem = _ref3.numberingSystem, numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem, _ref3$locObj = _ref3.locObj, locObj = _ref3$locObj === void 0 ? null : _ref3$locObj; return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); }; Info2.weekdaysFormat = function weekdaysFormat(length, _temp4) { if (length === void 0) { length = "long"; } var _ref4 = _temp4 === void 0 ? {} : _temp4, _ref4$locale = _ref4.locale, locale = _ref4$locale === void 0 ? null : _ref4$locale, _ref4$numberingSystem = _ref4.numberingSystem, numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem, _ref4$locObj = _ref4.locObj, locObj = _ref4$locObj === void 0 ? null : _ref4$locObj; return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); }; Info2.meridiems = function meridiems2(_temp5) { var _ref5 = _temp5 === void 0 ? {} : _temp5, _ref5$locale = _ref5.locale, locale = _ref5$locale === void 0 ? null : _ref5$locale; return Locale.create(locale).meridiems(); }; Info2.eras = function eras2(length, _temp6) { if (length === void 0) { length = "short"; } var _ref6 = _temp6 === void 0 ? {} : _temp6, _ref6$locale = _ref6.locale, locale = _ref6$locale === void 0 ? null : _ref6$locale; return Locale.create(locale, null, "gregory").eras(length); }; Info2.features = function features() { return { relative: hasRelative() }; }; return Info2; }(); function dayDiff(earlier, later) { var utcDayStart = function utcDayStart2(dt) { return dt.toUTC(0, { keepLocalTime: true }).startOf("day").valueOf(); }, ms = utcDayStart(later) - utcDayStart(earlier); return Math.floor(Duration.fromMillis(ms).as("days")); } function highOrderDiffs(cursor, later, units) { var differs = [["years", function(a2, b2) { return b2.year - a2.year; }], ["quarters", function(a2, b2) { return b2.quarter - a2.quarter; }], ["months", function(a2, b2) { return b2.month - a2.month + (b2.year - a2.year) * 12; }], ["weeks", function(a2, b2) { var days = dayDiff(a2, b2); return (days - days % 7) / 7; }], ["days", dayDiff]]; var results = {}; var lowestOrder, highWater; for (var _i = 0, _differs = differs; _i < _differs.length; _i++) { var _differs$_i = _differs[_i], unit = _differs$_i[0], differ = _differs$_i[1]; if (units.indexOf(unit) >= 0) { var _cursor$plus; lowestOrder = unit; var delta = differ(cursor, later); highWater = cursor.plus((_cursor$plus = {}, _cursor$plus[unit] = delta, _cursor$plus)); if (highWater > later) { var _cursor$plus2; cursor = cursor.plus((_cursor$plus2 = {}, _cursor$plus2[unit] = delta - 1, _cursor$plus2)); delta -= 1; } else { cursor = highWater; } results[unit] = delta; } } return [cursor, results, highWater, lowestOrder]; } function _diff(earlier, later, units, opts) { var _highOrderDiffs = highOrderDiffs(earlier, later, units), cursor = _highOrderDiffs[0], results = _highOrderDiffs[1], highWater = _highOrderDiffs[2], lowestOrder = _highOrderDiffs[3]; var remainingMillis = later - cursor; var lowerOrderUnits = units.filter(function(u2) { return ["hours", "minutes", "seconds", "milliseconds"].indexOf(u2) >= 0; }); if (lowerOrderUnits.length === 0) { if (highWater < later) { var _cursor$plus3; highWater = cursor.plus((_cursor$plus3 = {}, _cursor$plus3[lowestOrder] = 1, _cursor$plus3)); } if (highWater !== cursor) { results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor); } } var duration = Duration.fromObject(results, opts); if (lowerOrderUnits.length > 0) { var _Duration$fromMillis; return (_Duration$fromMillis = Duration.fromMillis(remainingMillis, opts)).shiftTo.apply(_Duration$fromMillis, lowerOrderUnits).plus(duration); } else { return duration; } } var numberingSystems = { arab: "[\u0660-\u0669]", arabext: "[\u06F0-\u06F9]", bali: "[\u1B50-\u1B59]", beng: "[\u09E6-\u09EF]", deva: "[\u0966-\u096F]", fullwide: "[\uFF10-\uFF19]", gujr: "[\u0AE6-\u0AEF]", hanidec: "[\u3007|\u4E00|\u4E8C|\u4E09|\u56DB|\u4E94|\u516D|\u4E03|\u516B|\u4E5D]", khmr: "[\u17E0-\u17E9]", knda: "[\u0CE6-\u0CEF]", laoo: "[\u0ED0-\u0ED9]", limb: "[\u1946-\u194F]", mlym: "[\u0D66-\u0D6F]", mong: "[\u1810-\u1819]", mymr: "[\u1040-\u1049]", orya: "[\u0B66-\u0B6F]", tamldec: "[\u0BE6-\u0BEF]", telu: "[\u0C66-\u0C6F]", thai: "[\u0E50-\u0E59]", tibt: "[\u0F20-\u0F29]", latn: "\\d" }; var numberingSystemsUTF16 = { arab: [1632, 1641], arabext: [1776, 1785], bali: [6992, 7001], beng: [2534, 2543], deva: [2406, 2415], fullwide: [65296, 65303], gujr: [2790, 2799], khmr: [6112, 6121], knda: [3302, 3311], laoo: [3792, 3801], limb: [6470, 6479], mlym: [3430, 3439], mong: [6160, 6169], mymr: [4160, 4169], orya: [2918, 2927], tamldec: [3046, 3055], telu: [3174, 3183], thai: [3664, 3673], tibt: [3872, 3881] }; var hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); function parseDigits(str) { var value = parseInt(str, 10); if (isNaN(value)) { value = ""; for (var i2 = 0; i2 < str.length; i2++) { var code = str.charCodeAt(i2); if (str[i2].search(numberingSystems.hanidec) !== -1) { value += hanidecChars.indexOf(str[i2]); } else { for (var key in numberingSystemsUTF16) { var _numberingSystemsUTF = numberingSystemsUTF16[key], min3 = _numberingSystemsUTF[0], max3 = _numberingSystemsUTF[1]; if (code >= min3 && code <= max3) { value += code - min3; } } } } return parseInt(value, 10); } else { return value; } } function digitRegex(_ref, append5) { var numberingSystem = _ref.numberingSystem; if (append5 === void 0) { append5 = ""; } return new RegExp("" + numberingSystems[numberingSystem || "latn"] + append5); } var MISSING_FTP = "missing Intl.DateTimeFormat.formatToParts support"; function intUnit(regex, post) { if (post === void 0) { post = function post2(i2) { return i2; }; } return { regex, deser: function deser(_ref) { var s3 = _ref[0]; return post(parseDigits(s3)); } }; } var NBSP = String.fromCharCode(160); var spaceOrNBSP = "[ " + NBSP + "]"; var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); function fixListRegex(s3) { return s3.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s3) { return s3.replace(/\./g, "").replace(spaceOrNBSPRegExp, " ").toLowerCase(); } function oneOf(strings, startIndex) { if (strings === null) { return null; } else { return { regex: RegExp(strings.map(fixListRegex).join("|")), deser: function deser(_ref2) { var s3 = _ref2[0]; return strings.findIndex(function(i2) { return stripInsensitivities(s3) === stripInsensitivities(i2); }) + startIndex; } }; } } function offset2(regex, groups) { return { regex, deser: function deser(_ref3) { var h2 = _ref3[1], m = _ref3[2]; return signedOffset(h2, m); }, groups }; } function simple(regex) { return { regex, deser: function deser(_ref4) { var s3 = _ref4[0]; return s3; } }; } function escapeToken(value) { return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } function unitForToken(token, loc) { var one = digitRegex(loc), two = digitRegex(loc, "{2}"), three = digitRegex(loc, "{3}"), four = digitRegex(loc, "{4}"), six = digitRegex(loc, "{6}"), oneOrTwo = digitRegex(loc, "{1,2}"), oneToThree = digitRegex(loc, "{1,3}"), oneToSix = digitRegex(loc, "{1,6}"), oneToNine = digitRegex(loc, "{1,9}"), twoToFour = digitRegex(loc, "{2,4}"), fourToSix = digitRegex(loc, "{4,6}"), literal = function literal2(t3) { return { regex: RegExp(escapeToken(t3.val)), deser: function deser(_ref5) { var s3 = _ref5[0]; return s3; }, literal: true }; }, unitate = function unitate2(t3) { if (token.literal) { return literal(t3); } switch (t3.val) { case "G": return oneOf(loc.eras("short", false), 0); case "GG": return oneOf(loc.eras("long", false), 0); case "y": return intUnit(oneToSix); case "yy": return intUnit(twoToFour, untruncateYear); case "yyyy": return intUnit(four); case "yyyyy": return intUnit(fourToSix); case "yyyyyy": return intUnit(six); case "M": return intUnit(oneOrTwo); case "MM": return intUnit(two); case "MMM": return oneOf(loc.months("short", true, false), 1); case "MMMM": return oneOf(loc.months("long", true, false), 1); case "L": return intUnit(oneOrTwo); case "LL": return intUnit(two); case "LLL": return oneOf(loc.months("short", false, false), 1); case "LLLL": return oneOf(loc.months("long", false, false), 1); case "d": return intUnit(oneOrTwo); case "dd": return intUnit(two); case "o": return intUnit(oneToThree); case "ooo": return intUnit(three); case "HH": return intUnit(two); case "H": return intUnit(oneOrTwo); case "hh": return intUnit(two); case "h": return intUnit(oneOrTwo); case "mm": return intUnit(two); case "m": return intUnit(oneOrTwo); case "q": return intUnit(oneOrTwo); case "qq": return intUnit(two); case "s": return intUnit(oneOrTwo); case "ss": return intUnit(two); case "S": return intUnit(oneToThree); case "SSS": return intUnit(three); case "u": return simple(oneToNine); case "uu": return simple(oneOrTwo); case "uuu": return intUnit(one); case "a": return oneOf(loc.meridiems(), 0); case "kkkk": return intUnit(four); case "kk": return intUnit(twoToFour, untruncateYear); case "W": return intUnit(oneOrTwo); case "WW": return intUnit(two); case "E": case "c": return intUnit(one); case "EEE": return oneOf(loc.weekdays("short", false, false), 1); case "EEEE": return oneOf(loc.weekdays("long", false, false), 1); case "ccc": return oneOf(loc.weekdays("short", true, false), 1); case "cccc": return oneOf(loc.weekdays("long", true, false), 1); case "Z": case "ZZ": return offset2(new RegExp("([+-]" + oneOrTwo.source + ")(?::(" + two.source + "))?"), 2); case "ZZZ": return offset2(new RegExp("([+-]" + oneOrTwo.source + ")(" + two.source + ")?"), 2); case "z": return simple(/[a-z_+-/]{1,256}?/i); default: return literal(t3); } }; var unit = unitate(token) || { invalidReason: MISSING_FTP }; unit.token = token; return unit; } var partTypeStyleToTokenVal = { year: { "2-digit": "yy", numeric: "yyyyy" }, month: { numeric: "M", "2-digit": "MM", short: "MMM", long: "MMMM" }, day: { numeric: "d", "2-digit": "dd" }, weekday: { short: "EEE", long: "EEEE" }, dayperiod: "a", dayPeriod: "a", hour: { numeric: "h", "2-digit": "hh" }, minute: { numeric: "m", "2-digit": "mm" }, second: { numeric: "s", "2-digit": "ss" } }; function tokenForPart(part, locale, formatOpts) { var type = part.type, value = part.value; if (type === "literal") { return { literal: true, val: value }; } var style = formatOpts[type]; var val = partTypeStyleToTokenVal[type]; if (typeof val === "object") { val = val[style]; } if (val) { return { literal: false, val }; } return void 0; } function buildRegex(units) { var re = units.map(function(u2) { return u2.regex; }).reduce(function(f2, r2) { return f2 + "(" + r2.source + ")"; }, ""); return ["^" + re + "$", units]; } function match6(input, regex, handlers) { var matches2 = input.match(regex); if (matches2) { var all = {}; var matchIndex = 1; for (var i2 in handlers) { if (hasOwnProperty(handlers, i2)) { var h2 = handlers[i2], groups = h2.groups ? h2.groups + 1 : 1; if (!h2.literal && h2.token) { all[h2.token.val[0]] = h2.deser(matches2.slice(matchIndex, matchIndex + groups)); } matchIndex += groups; } } return [matches2, all]; } else { return [matches2, {}]; } } function dateTimeFromMatches(matches2) { var toField = function toField2(token) { switch (token) { case "S": return "millisecond"; case "s": return "second"; case "m": return "minute"; case "h": case "H": return "hour"; case "d": return "day"; case "o": return "ordinal"; case "L": case "M": return "month"; case "y": return "year"; case "E": case "c": return "weekday"; case "W": return "weekNumber"; case "k": return "weekYear"; case "q": return "quarter"; default: return null; } }; var zone = null; var specificOffset; if (!isUndefined(matches2.z)) { zone = IANAZone.create(matches2.z); } if (!isUndefined(matches2.Z)) { if (!zone) { zone = new FixedOffsetZone(matches2.Z); } specificOffset = matches2.Z; } if (!isUndefined(matches2.q)) { matches2.M = (matches2.q - 1) * 3 + 1; } if (!isUndefined(matches2.h)) { if (matches2.h < 12 && matches2.a === 1) { matches2.h += 12; } else if (matches2.h === 12 && matches2.a === 0) { matches2.h = 0; } } if (matches2.G === 0 && matches2.y) { matches2.y = -matches2.y; } if (!isUndefined(matches2.u)) { matches2.S = parseMillis(matches2.u); } var vals = Object.keys(matches2).reduce(function(r2, k2) { var f2 = toField(k2); if (f2) { r2[f2] = matches2[k2]; } return r2; }, {}); return [vals, zone, specificOffset]; } var dummyDateTimeCache = null; function getDummyDateTime() { if (!dummyDateTimeCache) { dummyDateTimeCache = DateTime.fromMillis(1555555555555); } return dummyDateTimeCache; } function maybeExpandMacroToken(token, locale) { if (token.literal) { return token; } var formatOpts = Formatter2.macroTokenToFormatOpts(token.val); if (!formatOpts) { return token; } var formatter = Formatter2.create(locale, formatOpts); var parts = formatter.formatDateTimeParts(getDummyDateTime()); var tokens = parts.map(function(p2) { return tokenForPart(p2, locale, formatOpts); }); if (tokens.includes(void 0)) { return token; } return tokens; } function expandMacroTokens(tokens, locale) { var _Array$prototype; return (_Array$prototype = Array.prototype).concat.apply(_Array$prototype, tokens.map(function(t3) { return maybeExpandMacroToken(t3, locale); })); } function explainFromTokens(locale, input, format2) { var tokens = expandMacroTokens(Formatter2.parseFormat(format2), locale), units = tokens.map(function(t3) { return unitForToken(t3, locale); }), disqualifyingUnit = units.find(function(t3) { return t3.invalidReason; }); if (disqualifyingUnit) { return { input, tokens, invalidReason: disqualifyingUnit.invalidReason }; } else { var _buildRegex = buildRegex(units), regexString = _buildRegex[0], handlers = _buildRegex[1], regex = RegExp(regexString, "i"), _match = match6(input, regex, handlers), rawMatches = _match[0], matches2 = _match[1], _ref6 = matches2 ? dateTimeFromMatches(matches2) : [null, null, void 0], result = _ref6[0], zone = _ref6[1], specificOffset = _ref6[2]; if (hasOwnProperty(matches2, "a") && hasOwnProperty(matches2, "H")) { throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format"); } return { input, tokens, regex, rawMatches, matches: matches2, result, zone, specificOffset }; } } function parseFromTokens(locale, input, format2) { var _explainFromTokens = explainFromTokens(locale, input, format2), result = _explainFromTokens.result, zone = _explainFromTokens.zone, specificOffset = _explainFromTokens.specificOffset, invalidReason = _explainFromTokens.invalidReason; return [result, zone, specificOffset, invalidReason]; } var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]; var leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335]; function unitOutOfRange(unit, value) { return new Invalid("unit out of range", "you specified " + value + " (of type " + typeof value + ") as a " + unit + ", which is invalid"); } function dayOfWeek(year, month, day) { var d2 = new Date(Date.UTC(year, month - 1, day)); if (year < 100 && year >= 0) { d2.setUTCFullYear(d2.getUTCFullYear() - 1900); } var js = d2.getUTCDay(); return js === 0 ? 7 : js; } function computeOrdinal(year, month, day) { return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1]; } function uncomputeOrdinal(year, ordinal) { var table = isLeapYear(year) ? leapLadder : nonLeapLadder, month0 = table.findIndex(function(i2) { return i2 < ordinal; }), day = ordinal - table[month0]; return { month: month0 + 1, day }; } function gregorianToWeek(gregObj) { var year = gregObj.year, month = gregObj.month, day = gregObj.day, ordinal = computeOrdinal(year, month, day), weekday = dayOfWeek(year, month, day); var weekNumber = Math.floor((ordinal - weekday + 10) / 7), weekYear; if (weekNumber < 1) { weekYear = year - 1; weekNumber = weeksInWeekYear(weekYear); } else if (weekNumber > weeksInWeekYear(year)) { weekYear = year + 1; weekNumber = 1; } else { weekYear = year; } return _extends2({ weekYear, weekNumber, weekday }, timeObject(gregObj)); } function weekToGregorian(weekData) { var weekYear = weekData.weekYear, weekNumber = weekData.weekNumber, weekday = weekData.weekday, weekdayOfJan4 = dayOfWeek(weekYear, 1, 4), yearInDays = daysInYear(weekYear); var ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3, year; if (ordinal < 1) { year = weekYear - 1; ordinal += daysInYear(year); } else if (ordinal > yearInDays) { year = weekYear + 1; ordinal -= daysInYear(weekYear); } else { year = weekYear; } var _uncomputeOrdinal = uncomputeOrdinal(year, ordinal), month = _uncomputeOrdinal.month, day = _uncomputeOrdinal.day; return _extends2({ year, month, day }, timeObject(weekData)); } function gregorianToOrdinal(gregData) { var year = gregData.year, month = gregData.month, day = gregData.day; var ordinal = computeOrdinal(year, month, day); return _extends2({ year, ordinal }, timeObject(gregData)); } function ordinalToGregorian(ordinalData) { var year = ordinalData.year, ordinal = ordinalData.ordinal; var _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal), month = _uncomputeOrdinal2.month, day = _uncomputeOrdinal2.day; return _extends2({ year, month, day }, timeObject(ordinalData)); } function hasInvalidWeekData(obj) { var validYear = isInteger(obj.weekYear), validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)), validWeekday = integerBetween(obj.weekday, 1, 7); if (!validYear) { return unitOutOfRange("weekYear", obj.weekYear); } else if (!validWeek) { return unitOutOfRange("week", obj.week); } else if (!validWeekday) { return unitOutOfRange("weekday", obj.weekday); } else return false; } function hasInvalidOrdinalData(obj) { var validYear = isInteger(obj.year), validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year)); if (!validYear) { return unitOutOfRange("year", obj.year); } else if (!validOrdinal) { return unitOutOfRange("ordinal", obj.ordinal); } else return false; } function hasInvalidGregorianData(obj) { var validYear = isInteger(obj.year), validMonth = integerBetween(obj.month, 1, 12), validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month)); if (!validYear) { return unitOutOfRange("year", obj.year); } else if (!validMonth) { return unitOutOfRange("month", obj.month); } else if (!validDay) { return unitOutOfRange("day", obj.day); } else return false; } function hasInvalidTimeData(obj) { var hour = obj.hour, minute = obj.minute, second = obj.second, millisecond = obj.millisecond; var validHour = integerBetween(hour, 0, 23) || hour === 24 && minute === 0 && second === 0 && millisecond === 0, validMinute = integerBetween(minute, 0, 59), validSecond = integerBetween(second, 0, 59), validMillisecond = integerBetween(millisecond, 0, 999); if (!validHour) { return unitOutOfRange("hour", hour); } else if (!validMinute) { return unitOutOfRange("minute", minute); } else if (!validSecond) { return unitOutOfRange("second", second); } else if (!validMillisecond) { return unitOutOfRange("millisecond", millisecond); } else return false; } var INVALID = "Invalid DateTime"; var MAX_DATE = 864e13; function unsupportedZone(zone) { return new Invalid("unsupported zone", 'the zone "' + zone.name + '" is not supported'); } function possiblyCachedWeekData(dt) { if (dt.weekData === null) { dt.weekData = gregorianToWeek(dt.c); } return dt.weekData; } function clone2(inst, alts) { var current = { ts: inst.ts, zone: inst.zone, c: inst.c, o: inst.o, loc: inst.loc, invalid: inst.invalid }; return new DateTime(_extends2({}, current, alts, { old: current })); } function fixOffset(localTS, o2, tz) { var utcGuess = localTS - o2 * 60 * 1e3; var o22 = tz.offset(utcGuess); if (o2 === o22) { return [utcGuess, o2]; } utcGuess -= (o22 - o2) * 60 * 1e3; var o3 = tz.offset(utcGuess); if (o22 === o3) { return [utcGuess, o22]; } return [localTS - Math.min(o22, o3) * 60 * 1e3, Math.max(o22, o3)]; } function tsToObj(ts, offset3) { ts += offset3 * 60 * 1e3; var d2 = new Date(ts); return { year: d2.getUTCFullYear(), month: d2.getUTCMonth() + 1, day: d2.getUTCDate(), hour: d2.getUTCHours(), minute: d2.getUTCMinutes(), second: d2.getUTCSeconds(), millisecond: d2.getUTCMilliseconds() }; } function objToTS(obj, offset3, zone) { return fixOffset(objToLocalTS(obj), offset3, zone); } function adjustTime(inst, dur) { var oPre = inst.o, year = inst.c.year + Math.trunc(dur.years), month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, c2 = _extends2({}, inst.c, { year, month, day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ years: dur.years - Math.trunc(dur.years), quarters: dur.quarters - Math.trunc(dur.quarters), months: dur.months - Math.trunc(dur.months), weeks: dur.weeks - Math.trunc(dur.weeks), days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, milliseconds: dur.milliseconds }).as("milliseconds"), localTS = objToLocalTS(c2); var _fixOffset = fixOffset(localTS, oPre, inst.zone), ts = _fixOffset[0], o2 = _fixOffset[1]; if (millisToAdd !== 0) { ts += millisToAdd; o2 = inst.zone.offset(ts); } return { ts, o: o2 }; } function parseDataToDateTime(parsed, parsedZone, opts, format2, text2, specificOffset) { var setZone = opts.setZone, zone = opts.zone; if (parsed && Object.keys(parsed).length !== 0) { var interpretationZone = parsedZone || zone, inst = DateTime.fromObject(parsed, _extends2({}, opts, { zone: interpretationZone, specificOffset })); return setZone ? inst : inst.setZone(zone); } else { return DateTime.invalid(new Invalid("unparsable", 'the input "' + text2 + `" can't be parsed as ` + format2)); } } function toTechFormat(dt, format2, allowZ) { if (allowZ === void 0) { allowZ = true; } return dt.isValid ? Formatter2.create(Locale.create("en-US"), { allowZ, forceSimple: true }).formatDateTimeFromString(dt, format2) : null; } function _toISODate(o2, extended) { var longFormat = o2.c.year > 9999 || o2.c.year < 0; var c2 = ""; if (longFormat && o2.c.year >= 0) c2 += "+"; c2 += padStart(o2.c.year, longFormat ? 6 : 4); if (extended) { c2 += "-"; c2 += padStart(o2.c.month); c2 += "-"; c2 += padStart(o2.c.day); } else { c2 += padStart(o2.c.month); c2 += padStart(o2.c.day); } return c2; } function _toISOTime(o2, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) { var c2 = padStart(o2.c.hour); if (extended) { c2 += ":"; c2 += padStart(o2.c.minute); if (o2.c.second !== 0 || !suppressSeconds) { c2 += ":"; } } else { c2 += padStart(o2.c.minute); } if (o2.c.second !== 0 || !suppressSeconds) { c2 += padStart(o2.c.second); if (o2.c.millisecond !== 0 || !suppressMilliseconds) { c2 += "."; c2 += padStart(o2.c.millisecond, 3); } } if (includeOffset) { if (o2.isOffsetFixed && o2.offset === 0 && !extendedZone) { c2 += "Z"; } else if (o2.o < 0) { c2 += "-"; c2 += padStart(Math.trunc(-o2.o / 60)); c2 += ":"; c2 += padStart(Math.trunc(-o2.o % 60)); } else { c2 += "+"; c2 += padStart(Math.trunc(o2.o / 60)); c2 += ":"; c2 += padStart(Math.trunc(o2.o % 60)); } } if (extendedZone) { c2 += "[" + o2.zone.ianaName + "]"; } return c2; } var defaultUnitValues = { month: 1, day: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }; var defaultWeekUnitValues = { weekNumber: 1, weekday: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }; var defaultOrdinalUnitValues = { ordinal: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }; var orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"]; var orderedWeekUnits = ["weekYear", "weekNumber", "weekday", "hour", "minute", "second", "millisecond"]; var orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; function normalizeUnit(unit) { var normalized = { year: "year", years: "year", month: "month", months: "month", day: "day", days: "day", hour: "hour", hours: "hour", minute: "minute", minutes: "minute", quarter: "quarter", quarters: "quarter", second: "second", seconds: "second", millisecond: "millisecond", milliseconds: "millisecond", weekday: "weekday", weekdays: "weekday", weeknumber: "weekNumber", weeksnumber: "weekNumber", weeknumbers: "weekNumber", weekyear: "weekYear", weekyears: "weekYear", ordinal: "ordinal" }[unit.toLowerCase()]; if (!normalized) throw new InvalidUnitError(unit); return normalized; } function quickDT(obj, opts) { var zone = normalizeZone(opts.zone, Settings.defaultZone), loc = Locale.fromObject(opts), tsNow = Settings.now(); var ts, o2; if (!isUndefined(obj.year)) { for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits), _step; !(_step = _iterator()).done; ) { var u2 = _step.value; if (isUndefined(obj[u2])) { obj[u2] = defaultUnitValues[u2]; } } var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); if (invalid) { return DateTime.invalid(invalid); } var offsetProvis = zone.offset(tsNow); var _objToTS = objToTS(obj, offsetProvis, zone); ts = _objToTS[0]; o2 = _objToTS[1]; } else { ts = tsNow; } return new DateTime({ ts, zone, loc, o: o2 }); } function diffRelative(start2, end2, opts) { var round2 = isUndefined(opts.round) ? true : opts.round, format2 = function format3(c2, unit2) { c2 = roundTo(c2, round2 || opts.calendary ? 0 : 2, true); var formatter = end2.loc.clone(opts).relFormatter(opts); return formatter.format(c2, unit2); }, differ = function differ2(unit2) { if (opts.calendary) { if (!end2.hasSame(start2, unit2)) { return end2.startOf(unit2).diff(start2.startOf(unit2), unit2).get(unit2); } else return 0; } else { return end2.diff(start2, unit2).get(unit2); } }; if (opts.unit) { return format2(differ(opts.unit), opts.unit); } for (var _iterator2 = _createForOfIteratorHelperLoose(opts.units), _step2; !(_step2 = _iterator2()).done; ) { var unit = _step2.value; var count = differ(unit); if (Math.abs(count) >= 1) { return format2(count, unit); } } return format2(start2 > end2 ? -0 : 0, opts.units[opts.units.length - 1]); } function lastOpts(argList) { var opts = {}, args; if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { opts = argList[argList.length - 1]; args = Array.from(argList).slice(0, argList.length - 1); } else { args = Array.from(argList); } return [opts, args]; } var DateTime = /* @__PURE__ */ function() { function DateTime2(config) { var zone = config.zone || Settings.defaultZone; var invalid = config.invalid || (Number.isNaN(config.ts) ? new Invalid("invalid input") : null) || (!zone.isValid ? unsupportedZone(zone) : null); this.ts = isUndefined(config.ts) ? Settings.now() : config.ts; var c2 = null, o2 = null; if (!invalid) { var unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); if (unchanged) { var _ref = [config.old.c, config.old.o]; c2 = _ref[0]; o2 = _ref[1]; } else { var ot = zone.offset(this.ts); c2 = tsToObj(this.ts, ot); invalid = Number.isNaN(c2.year) ? new Invalid("invalid input") : null; c2 = invalid ? null : c2; o2 = invalid ? null : ot; } } this._zone = zone; this.loc = config.loc || Locale.create(); this.invalid = invalid; this.weekData = null; this.c = c2; this.o = o2; this.isLuxonDateTime = true; } DateTime2.now = function now3() { return new DateTime2({}); }; DateTime2.local = function local() { var _lastOpts = lastOpts(arguments), opts = _lastOpts[0], args = _lastOpts[1], year = args[0], month = args[1], day = args[2], hour = args[3], minute = args[4], second = args[5], millisecond = args[6]; return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); }; DateTime2.utc = function utc() { var _lastOpts2 = lastOpts(arguments), opts = _lastOpts2[0], args = _lastOpts2[1], year = args[0], month = args[1], day = args[2], hour = args[3], minute = args[4], second = args[5], millisecond = args[6]; opts.zone = FixedOffsetZone.utcInstance; return quickDT({ year, month, day, hour, minute, second, millisecond }, opts); }; DateTime2.fromJSDate = function fromJSDate(date, options) { if (options === void 0) { options = {}; } var ts = isDate3(date) ? date.valueOf() : NaN; if (Number.isNaN(ts)) { return DateTime2.invalid("invalid input"); } var zoneToUse = normalizeZone(options.zone, Settings.defaultZone); if (!zoneToUse.isValid) { return DateTime2.invalid(unsupportedZone(zoneToUse)); } return new DateTime2({ ts, zone: zoneToUse, loc: Locale.fromObject(options) }); }; DateTime2.fromMillis = function fromMillis(milliseconds, options) { if (options === void 0) { options = {}; } if (!isNumber2(milliseconds)) { throw new InvalidArgumentError("fromMillis requires a numerical input, but received a " + typeof milliseconds + " with value " + milliseconds); } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) { return DateTime2.invalid("Timestamp out of range"); } else { return new DateTime2({ ts: milliseconds, zone: normalizeZone(options.zone, Settings.defaultZone), loc: Locale.fromObject(options) }); } }; DateTime2.fromSeconds = function fromSeconds(seconds, options) { if (options === void 0) { options = {}; } if (!isNumber2(seconds)) { throw new InvalidArgumentError("fromSeconds requires a numerical input"); } else { return new DateTime2({ ts: seconds * 1e3, zone: normalizeZone(options.zone, Settings.defaultZone), loc: Locale.fromObject(options) }); } }; DateTime2.fromObject = function fromObject(obj, opts) { if (opts === void 0) { opts = {}; } obj = obj || {}; var zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); if (!zoneToUse.isValid) { return DateTime2.invalid(unsupportedZone(zoneToUse)); } var tsNow = Settings.now(), offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow), normalized = normalizeObject(obj, normalizeUnit), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber, loc = Locale.fromObject(opts); if ((containsGregor || containsOrdinal) && definiteWeekDef) { throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); } if (containsGregorMD && containsOrdinal) { throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); } var useWeekData = definiteWeekDef || normalized.weekday && !containsGregor; var units, defaultValues, objNow = tsToObj(tsNow, offsetProvis); if (useWeekData) { units = orderedWeekUnits; defaultValues = defaultWeekUnitValues; objNow = gregorianToWeek(objNow); } else if (containsOrdinal) { units = orderedOrdinalUnits; defaultValues = defaultOrdinalUnitValues; objNow = gregorianToOrdinal(objNow); } else { units = orderedUnits; defaultValues = defaultUnitValues; } var foundFirst = false; for (var _iterator3 = _createForOfIteratorHelperLoose(units), _step3; !(_step3 = _iterator3()).done; ) { var u2 = _step3.value; var v2 = normalized[u2]; if (!isUndefined(v2)) { foundFirst = true; } else if (foundFirst) { normalized[u2] = defaultValues[u2]; } else { normalized[u2] = objNow[u2]; } } var higherOrderInvalid = useWeekData ? hasInvalidWeekData(normalized) : containsOrdinal ? hasInvalidOrdinalData(normalized) : hasInvalidGregorianData(normalized), invalid = higherOrderInvalid || hasInvalidTimeData(normalized); if (invalid) { return DateTime2.invalid(invalid); } var gregorian = useWeekData ? weekToGregorian(normalized) : containsOrdinal ? ordinalToGregorian(normalized) : normalized, _objToTS2 = objToTS(gregorian, offsetProvis, zoneToUse), tsFinal = _objToTS2[0], offsetFinal = _objToTS2[1], inst = new DateTime2({ ts: tsFinal, zone: zoneToUse, o: offsetFinal, loc }); if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) { return DateTime2.invalid("mismatched weekday", "you can't specify both a weekday of " + normalized.weekday + " and a date of " + inst.toISO()); } return inst; }; DateTime2.fromISO = function fromISO(text2, opts) { if (opts === void 0) { opts = {}; } var _parseISODate = parseISODate(text2), vals = _parseISODate[0], parsedZone = _parseISODate[1]; return parseDataToDateTime(vals, parsedZone, opts, "ISO 8601", text2); }; DateTime2.fromRFC2822 = function fromRFC2822(text2, opts) { if (opts === void 0) { opts = {}; } var _parseRFC2822Date = parseRFC2822Date(text2), vals = _parseRFC2822Date[0], parsedZone = _parseRFC2822Date[1]; return parseDataToDateTime(vals, parsedZone, opts, "RFC 2822", text2); }; DateTime2.fromHTTP = function fromHTTP(text2, opts) { if (opts === void 0) { opts = {}; } var _parseHTTPDate = parseHTTPDate(text2), vals = _parseHTTPDate[0], parsedZone = _parseHTTPDate[1]; return parseDataToDateTime(vals, parsedZone, opts, "HTTP", opts); }; DateTime2.fromFormat = function fromFormat(text2, fmt, opts) { if (opts === void 0) { opts = {}; } if (isUndefined(text2) || isUndefined(fmt)) { throw new InvalidArgumentError("fromFormat requires an input string and a format"); } var _opts = opts, _opts$locale = _opts.locale, locale = _opts$locale === void 0 ? null : _opts$locale, _opts$numberingSystem = _opts.numberingSystem, numberingSystem = _opts$numberingSystem === void 0 ? null : _opts$numberingSystem, localeToUse = Locale.fromOpts({ locale, numberingSystem, defaultToEN: true }), _parseFromTokens = parseFromTokens(localeToUse, text2, fmt), vals = _parseFromTokens[0], parsedZone = _parseFromTokens[1], specificOffset = _parseFromTokens[2], invalid = _parseFromTokens[3]; if (invalid) { return DateTime2.invalid(invalid); } else { return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text2, specificOffset); } }; DateTime2.fromString = function fromString(text2, fmt, opts) { if (opts === void 0) { opts = {}; } return DateTime2.fromFormat(text2, fmt, opts); }; DateTime2.fromSQL = function fromSQL(text2, opts) { if (opts === void 0) { opts = {}; } var _parseSQL = parseSQL(text2), vals = _parseSQL[0], parsedZone = _parseSQL[1]; return parseDataToDateTime(vals, parsedZone, opts, "SQL", text2); }; DateTime2.invalid = function invalid(reason, explanation) { if (explanation === void 0) { explanation = null; } if (!reason) { throw new InvalidArgumentError("need to specify a reason the DateTime is invalid"); } var invalid2 = reason instanceof Invalid ? reason : new Invalid(reason, explanation); if (Settings.throwOnInvalid) { throw new InvalidDateTimeError(invalid2); } else { return new DateTime2({ invalid: invalid2 }); } }; DateTime2.isDateTime = function isDateTime(o2) { return o2 && o2.isLuxonDateTime || false; }; var _proto = DateTime2.prototype; _proto.get = function get2(unit) { return this[unit]; }; _proto.resolvedLocaleOptions = function resolvedLocaleOptions(opts) { if (opts === void 0) { opts = {}; } var _Formatter$create$res = Formatter2.create(this.loc.clone(opts), opts).resolvedOptions(this), locale = _Formatter$create$res.locale, numberingSystem = _Formatter$create$res.numberingSystem, calendar = _Formatter$create$res.calendar; return { locale, numberingSystem, outputCalendar: calendar }; }; _proto.toUTC = function toUTC(offset3, opts) { if (offset3 === void 0) { offset3 = 0; } if (opts === void 0) { opts = {}; } return this.setZone(FixedOffsetZone.instance(offset3), opts); }; _proto.toLocal = function toLocal() { return this.setZone(Settings.defaultZone); }; _proto.setZone = function setZone(zone, _temp) { var _ref2 = _temp === void 0 ? {} : _temp, _ref2$keepLocalTime = _ref2.keepLocalTime, keepLocalTime = _ref2$keepLocalTime === void 0 ? false : _ref2$keepLocalTime, _ref2$keepCalendarTim = _ref2.keepCalendarTime, keepCalendarTime = _ref2$keepCalendarTim === void 0 ? false : _ref2$keepCalendarTim; zone = normalizeZone(zone, Settings.defaultZone); if (zone.equals(this.zone)) { return this; } else if (!zone.isValid) { return DateTime2.invalid(unsupportedZone(zone)); } else { var newTS = this.ts; if (keepLocalTime || keepCalendarTime) { var offsetGuess = zone.offset(this.ts); var asObj = this.toObject(); var _objToTS3 = objToTS(asObj, offsetGuess, zone); newTS = _objToTS3[0]; } return clone2(this, { ts: newTS, zone }); } }; _proto.reconfigure = function reconfigure(_temp2) { var _ref3 = _temp2 === void 0 ? {} : _temp2, locale = _ref3.locale, numberingSystem = _ref3.numberingSystem, outputCalendar = _ref3.outputCalendar; var loc = this.loc.clone({ locale, numberingSystem, outputCalendar }); return clone2(this, { loc }); }; _proto.setLocale = function setLocale(locale) { return this.reconfigure({ locale }); }; _proto.set = function set2(values) { if (!this.isValid) return this; var normalized = normalizeObject(values, normalizeUnit), settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber; if ((containsGregor || containsOrdinal) && definiteWeekDef) { throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); } if (containsGregorMD && containsOrdinal) { throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); } var mixed; if (settingWeekStuff) { mixed = weekToGregorian(_extends2({}, gregorianToWeek(this.c), normalized)); } else if (!isUndefined(normalized.ordinal)) { mixed = ordinalToGregorian(_extends2({}, gregorianToOrdinal(this.c), normalized)); } else { mixed = _extends2({}, this.toObject(), normalized); if (isUndefined(normalized.day)) { mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day); } } var _objToTS4 = objToTS(mixed, this.o, this.zone), ts = _objToTS4[0], o2 = _objToTS4[1]; return clone2(this, { ts, o: o2 }); }; _proto.plus = function plus(duration) { if (!this.isValid) return this; var dur = Duration.fromDurationLike(duration); return clone2(this, adjustTime(this, dur)); }; _proto.minus = function minus(duration) { if (!this.isValid) return this; var dur = Duration.fromDurationLike(duration).negate(); return clone2(this, adjustTime(this, dur)); }; _proto.startOf = function startOf(unit) { if (!this.isValid) return this; var o2 = {}, normalizedUnit = Duration.normalizeUnit(unit); switch (normalizedUnit) { case "years": o2.month = 1; case "quarters": case "months": o2.day = 1; case "weeks": case "days": o2.hour = 0; case "hours": o2.minute = 0; case "minutes": o2.second = 0; case "seconds": o2.millisecond = 0; break; } if (normalizedUnit === "weeks") { o2.weekday = 1; } if (normalizedUnit === "quarters") { var q2 = Math.ceil(this.month / 3); o2.month = (q2 - 1) * 3 + 1; } return this.set(o2); }; _proto.endOf = function endOf(unit) { var _this$plus; return this.isValid ? this.plus((_this$plus = {}, _this$plus[unit] = 1, _this$plus)).startOf(unit).minus(1) : this; }; _proto.toFormat = function toFormat(fmt, opts) { if (opts === void 0) { opts = {}; } return this.isValid ? Formatter2.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID; }; _proto.toLocaleString = function toLocaleString(formatOpts, opts) { if (formatOpts === void 0) { formatOpts = DATE_SHORT; } if (opts === void 0) { opts = {}; } return this.isValid ? Formatter2.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID; }; _proto.toLocaleParts = function toLocaleParts(opts) { if (opts === void 0) { opts = {}; } return this.isValid ? Formatter2.create(this.loc.clone(opts), opts).formatDateTimeParts(this) : []; }; _proto.toISO = function toISO(_temp3) { var _ref4 = _temp3 === void 0 ? {} : _temp3, _ref4$format = _ref4.format, format2 = _ref4$format === void 0 ? "extended" : _ref4$format, _ref4$suppressSeconds = _ref4.suppressSeconds, suppressSeconds = _ref4$suppressSeconds === void 0 ? false : _ref4$suppressSeconds, _ref4$suppressMillise = _ref4.suppressMilliseconds, suppressMilliseconds = _ref4$suppressMillise === void 0 ? false : _ref4$suppressMillise, _ref4$includeOffset = _ref4.includeOffset, includeOffset = _ref4$includeOffset === void 0 ? true : _ref4$includeOffset, _ref4$extendedZone = _ref4.extendedZone, extendedZone = _ref4$extendedZone === void 0 ? false : _ref4$extendedZone; if (!this.isValid) { return null; } var ext = format2 === "extended"; var c2 = _toISODate(this, ext); c2 += "T"; c2 += _toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); return c2; }; _proto.toISODate = function toISODate(_temp4) { var _ref5 = _temp4 === void 0 ? {} : _temp4, _ref5$format = _ref5.format, format2 = _ref5$format === void 0 ? "extended" : _ref5$format; if (!this.isValid) { return null; } return _toISODate(this, format2 === "extended"); }; _proto.toISOWeekDate = function toISOWeekDate() { return toTechFormat(this, "kkkk-'W'WW-c"); }; _proto.toISOTime = function toISOTime(_temp5) { var _ref6 = _temp5 === void 0 ? {} : _temp5, _ref6$suppressMillise = _ref6.suppressMilliseconds, suppressMilliseconds = _ref6$suppressMillise === void 0 ? false : _ref6$suppressMillise, _ref6$suppressSeconds = _ref6.suppressSeconds, suppressSeconds = _ref6$suppressSeconds === void 0 ? false : _ref6$suppressSeconds, _ref6$includeOffset = _ref6.includeOffset, includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset, _ref6$includePrefix = _ref6.includePrefix, includePrefix = _ref6$includePrefix === void 0 ? false : _ref6$includePrefix, _ref6$extendedZone = _ref6.extendedZone, extendedZone = _ref6$extendedZone === void 0 ? false : _ref6$extendedZone, _ref6$format = _ref6.format, format2 = _ref6$format === void 0 ? "extended" : _ref6$format; if (!this.isValid) { return null; } var c2 = includePrefix ? "T" : ""; return c2 + _toISOTime(this, format2 === "extended", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); }; _proto.toRFC2822 = function toRFC2822() { return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); }; _proto.toHTTP = function toHTTP() { return toTechFormat(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'"); }; _proto.toSQLDate = function toSQLDate() { if (!this.isValid) { return null; } return _toISODate(this, true); }; _proto.toSQLTime = function toSQLTime(_temp6) { var _ref7 = _temp6 === void 0 ? {} : _temp6, _ref7$includeOffset = _ref7.includeOffset, includeOffset = _ref7$includeOffset === void 0 ? true : _ref7$includeOffset, _ref7$includeZone = _ref7.includeZone, includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone, _ref7$includeOffsetSp = _ref7.includeOffsetSpace, includeOffsetSpace = _ref7$includeOffsetSp === void 0 ? true : _ref7$includeOffsetSp; var fmt = "HH:mm:ss.SSS"; if (includeZone || includeOffset) { if (includeOffsetSpace) { fmt += " "; } if (includeZone) { fmt += "z"; } else if (includeOffset) { fmt += "ZZ"; } } return toTechFormat(this, fmt, true); }; _proto.toSQL = function toSQL(opts) { if (opts === void 0) { opts = {}; } if (!this.isValid) { return null; } return this.toSQLDate() + " " + this.toSQLTime(opts); }; _proto.toString = function toString2() { return this.isValid ? this.toISO() : INVALID; }; _proto.valueOf = function valueOf() { return this.toMillis(); }; _proto.toMillis = function toMillis() { return this.isValid ? this.ts : NaN; }; _proto.toSeconds = function toSeconds() { return this.isValid ? this.ts / 1e3 : NaN; }; _proto.toUnixInteger = function toUnixInteger() { return this.isValid ? Math.floor(this.ts / 1e3) : NaN; }; _proto.toJSON = function toJSON() { return this.toISO(); }; _proto.toBSON = function toBSON() { return this.toJSDate(); }; _proto.toObject = function toObject(opts) { if (opts === void 0) { opts = {}; } if (!this.isValid) return {}; var base = _extends2({}, this.c); if (opts.includeConfig) { base.outputCalendar = this.outputCalendar; base.numberingSystem = this.loc.numberingSystem; base.locale = this.loc.locale; } return base; }; _proto.toJSDate = function toJSDate() { return new Date(this.isValid ? this.ts : NaN); }; _proto.diff = function diff(otherDateTime, unit, opts) { if (unit === void 0) { unit = "milliseconds"; } if (opts === void 0) { opts = {}; } if (!this.isValid || !otherDateTime.isValid) { return Duration.invalid("created by diffing an invalid DateTime"); } var durOpts = _extends2({ locale: this.locale, numberingSystem: this.numberingSystem }, opts); var units = maybeArray(unit).map(Duration.normalizeUnit), otherIsLater = otherDateTime.valueOf() > this.valueOf(), earlier = otherIsLater ? this : otherDateTime, later = otherIsLater ? otherDateTime : this, diffed = _diff(earlier, later, units, durOpts); return otherIsLater ? diffed.negate() : diffed; }; _proto.diffNow = function diffNow(unit, opts) { if (unit === void 0) { unit = "milliseconds"; } if (opts === void 0) { opts = {}; } return this.diff(DateTime2.now(), unit, opts); }; _proto.until = function until(otherDateTime) { return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; }; _proto.hasSame = function hasSame(otherDateTime, unit) { if (!this.isValid) return false; var inputMs = otherDateTime.valueOf(); var adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true }); return adjustedToZone.startOf(unit) <= inputMs && inputMs <= adjustedToZone.endOf(unit); }; _proto.equals = function equals(other) { return this.isValid && other.isValid && this.valueOf() === other.valueOf() && this.zone.equals(other.zone) && this.loc.equals(other.loc); }; _proto.toRelative = function toRelative(options) { if (options === void 0) { options = {}; } if (!this.isValid) return null; var base = options.base || DateTime2.fromObject({}, { zone: this.zone }), padding = options.padding ? this < base ? -options.padding : options.padding : 0; var units = ["years", "months", "days", "hours", "minutes", "seconds"]; var unit = options.unit; if (Array.isArray(options.unit)) { units = options.unit; unit = void 0; } return diffRelative(base, this.plus(padding), _extends2({}, options, { numeric: "always", units, unit })); }; _proto.toRelativeCalendar = function toRelativeCalendar(options) { if (options === void 0) { options = {}; } if (!this.isValid) return null; return diffRelative(options.base || DateTime2.fromObject({}, { zone: this.zone }), this, _extends2({}, options, { numeric: "auto", units: ["years", "months", "days"], calendary: true })); }; DateTime2.min = function min3() { for (var _len = arguments.length, dateTimes = new Array(_len), _key = 0; _key < _len; _key++) { dateTimes[_key] = arguments[_key]; } if (!dateTimes.every(DateTime2.isDateTime)) { throw new InvalidArgumentError("min requires all arguments be DateTimes"); } return bestBy(dateTimes, function(i2) { return i2.valueOf(); }, Math.min); }; DateTime2.max = function max3() { for (var _len2 = arguments.length, dateTimes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { dateTimes[_key2] = arguments[_key2]; } if (!dateTimes.every(DateTime2.isDateTime)) { throw new InvalidArgumentError("max requires all arguments be DateTimes"); } return bestBy(dateTimes, function(i2) { return i2.valueOf(); }, Math.max); }; DateTime2.fromFormatExplain = function fromFormatExplain(text2, fmt, options) { if (options === void 0) { options = {}; } var _options = options, _options$locale = _options.locale, locale = _options$locale === void 0 ? null : _options$locale, _options$numberingSys = _options.numberingSystem, numberingSystem = _options$numberingSys === void 0 ? null : _options$numberingSys, localeToUse = Locale.fromOpts({ locale, numberingSystem, defaultToEN: true }); return explainFromTokens(localeToUse, text2, fmt); }; DateTime2.fromStringExplain = function fromStringExplain(text2, fmt, options) { if (options === void 0) { options = {}; } return DateTime2.fromFormatExplain(text2, fmt, options); }; _createClass2(DateTime2, [{ key: "isValid", get: function get2() { return this.invalid === null; } }, { key: "invalidReason", get: function get2() { return this.invalid ? this.invalid.reason : null; } }, { key: "invalidExplanation", get: function get2() { return this.invalid ? this.invalid.explanation : null; } }, { key: "locale", get: function get2() { return this.isValid ? this.loc.locale : null; } }, { key: "numberingSystem", get: function get2() { return this.isValid ? this.loc.numberingSystem : null; } }, { key: "outputCalendar", get: function get2() { return this.isValid ? this.loc.outputCalendar : null; } }, { key: "zone", get: function get2() { return this._zone; } }, { key: "zoneName", get: function get2() { return this.isValid ? this.zone.name : null; } }, { key: "year", get: function get2() { return this.isValid ? this.c.year : NaN; } }, { key: "quarter", get: function get2() { return this.isValid ? Math.ceil(this.c.month / 3) : NaN; } }, { key: "month", get: function get2() { return this.isValid ? this.c.month : NaN; } }, { key: "day", get: function get2() { return this.isValid ? this.c.day : NaN; } }, { key: "hour", get: function get2() { return this.isValid ? this.c.hour : NaN; } }, { key: "minute", get: function get2() { return this.isValid ? this.c.minute : NaN; } }, { key: "second", get: function get2() { return this.isValid ? this.c.second : NaN; } }, { key: "millisecond", get: function get2() { return this.isValid ? this.c.millisecond : NaN; } }, { key: "weekYear", get: function get2() { return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN; } }, { key: "weekNumber", get: function get2() { return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN; } }, { key: "weekday", get: function get2() { return this.isValid ? possiblyCachedWeekData(this).weekday : NaN; } }, { key: "ordinal", get: function get2() { return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN; } }, { key: "monthShort", get: function get2() { return this.isValid ? Info.months("short", { locObj: this.loc })[this.month - 1] : null; } }, { key: "monthLong", get: function get2() { return this.isValid ? Info.months("long", { locObj: this.loc })[this.month - 1] : null; } }, { key: "weekdayShort", get: function get2() { return this.isValid ? Info.weekdays("short", { locObj: this.loc })[this.weekday - 1] : null; } }, { key: "weekdayLong", get: function get2() { return this.isValid ? Info.weekdays("long", { locObj: this.loc })[this.weekday - 1] : null; } }, { key: "offset", get: function get2() { return this.isValid ? +this.o : NaN; } }, { key: "offsetNameShort", get: function get2() { if (this.isValid) { return this.zone.offsetName(this.ts, { format: "short", locale: this.locale }); } else { return null; } } }, { key: "offsetNameLong", get: function get2() { if (this.isValid) { return this.zone.offsetName(this.ts, { format: "long", locale: this.locale }); } else { return null; } } }, { key: "isOffsetFixed", get: function get2() { return this.isValid ? this.zone.isUniversal : null; } }, { key: "isInDST", get: function get2() { if (this.isOffsetFixed) { return false; } else { return this.offset > this.set({ month: 1, day: 1 }).offset || this.offset > this.set({ month: 5 }).offset; } } }, { key: "isInLeapYear", get: function get2() { return isLeapYear(this.year); } }, { key: "daysInMonth", get: function get2() { return daysInMonth(this.year, this.month); } }, { key: "daysInYear", get: function get2() { return this.isValid ? daysInYear(this.year) : NaN; } }, { key: "weeksInWeekYear", get: function get2() { return this.isValid ? weeksInWeekYear(this.weekYear) : NaN; } }], [{ key: "DATE_SHORT", get: function get2() { return DATE_SHORT; } }, { key: "DATE_MED", get: function get2() { return DATE_MED; } }, { key: "DATE_MED_WITH_WEEKDAY", get: function get2() { return DATE_MED_WITH_WEEKDAY; } }, { key: "DATE_FULL", get: function get2() { return DATE_FULL; } }, { key: "DATE_HUGE", get: function get2() { return DATE_HUGE; } }, { key: "TIME_SIMPLE", get: function get2() { return TIME_SIMPLE; } }, { key: "TIME_WITH_SECONDS", get: function get2() { return TIME_WITH_SECONDS; } }, { key: "TIME_WITH_SHORT_OFFSET", get: function get2() { return TIME_WITH_SHORT_OFFSET; } }, { key: "TIME_WITH_LONG_OFFSET", get: function get2() { return TIME_WITH_LONG_OFFSET; } }, { key: "TIME_24_SIMPLE", get: function get2() { return TIME_24_SIMPLE; } }, { key: "TIME_24_WITH_SECONDS", get: function get2() { return TIME_24_WITH_SECONDS; } }, { key: "TIME_24_WITH_SHORT_OFFSET", get: function get2() { return TIME_24_WITH_SHORT_OFFSET; } }, { key: "TIME_24_WITH_LONG_OFFSET", get: function get2() { return TIME_24_WITH_LONG_OFFSET; } }, { key: "DATETIME_SHORT", get: function get2() { return DATETIME_SHORT; } }, { key: "DATETIME_SHORT_WITH_SECONDS", get: function get2() { return DATETIME_SHORT_WITH_SECONDS; } }, { key: "DATETIME_MED", get: function get2() { return DATETIME_MED; } }, { key: "DATETIME_MED_WITH_SECONDS", get: function get2() { return DATETIME_MED_WITH_SECONDS; } }, { key: "DATETIME_MED_WITH_WEEKDAY", get: function get2() { return DATETIME_MED_WITH_WEEKDAY; } }, { key: "DATETIME_FULL", get: function get2() { return DATETIME_FULL; } }, { key: "DATETIME_FULL_WITH_SECONDS", get: function get2() { return DATETIME_FULL_WITH_SECONDS; } }, { key: "DATETIME_HUGE", get: function get2() { return DATETIME_HUGE; } }, { key: "DATETIME_HUGE_WITH_SECONDS", get: function get2() { return DATETIME_HUGE_WITH_SECONDS; } }]); return DateTime2; }(); function friendlyDateTime(dateTimeish) { if (DateTime.isDateTime(dateTimeish)) { return dateTimeish; } else if (dateTimeish && dateTimeish.valueOf && isNumber2(dateTimeish.valueOf())) { return DateTime.fromJSDate(dateTimeish); } else if (dateTimeish && typeof dateTimeish === "object") { return DateTime.fromObject(dateTimeish); } else { throw new InvalidArgumentError("Unknown datetime argument: " + dateTimeish + ", of type " + typeof dateTimeish); } } var VERSION = "2.4.0"; var DateTime_1 = luxon.DateTime = DateTime; var Duration_1 = luxon.Duration = Duration; luxon.FixedOffsetZone = FixedOffsetZone; luxon.IANAZone = IANAZone; luxon.Info = Info; luxon.Interval = Interval; luxon.InvalidZone = InvalidZone; luxon.Settings = Settings; luxon.SystemZone = SystemZone; luxon.VERSION = VERSION; luxon.Zone = Zone; var DEFAULT_QUERY_SETTINGS = { renderNullAs: "\\-", taskCompletionTracking: false, taskCompletionUseEmojiShorthand: false, taskCompletionText: "completion", taskCompletionDateFormat: "yyyy-MM-dd", recursiveSubTaskCompletion: false, warnOnEmptyResult: true, refreshEnabled: true, refreshInterval: 2500, defaultDateFormat: "MMMM dd, yyyy", defaultDateTimeFormat: "h:mm a - MMMM dd, yyyy", maxRecursiveRenderDepth: 4, tableIdColumnName: "File", tableGroupColumnName: "Group" }; var DEFAULT_EXPORT_SETTINGS = { allowHtml: true }; __spreadValues(__spreadValues(__spreadValues({}, DEFAULT_QUERY_SETTINGS), DEFAULT_EXPORT_SETTINGS), { inlineQueryPrefix: "=", inlineJsQueryPrefix: "$=", inlineQueriesInCodeblocks: true, enableInlineDataview: true, enableDataviewJs: false, enableInlineDataviewJs: false, prettyRenderInlineFields: true }); var Success = class { constructor(value) { this.value = value; this.successful = true; } map(f2) { return new Success(f2(this.value)); } flatMap(f2) { return f2(this.value); } mapErr(f2) { return this; } bimap(succ, _fail) { return this.map(succ); } orElse(_value) { return this.value; } cast() { return this; } orElseThrow(_message) { return this.value; } }; var Failure = class { constructor(error2) { this.error = error2; this.successful = false; } map(_f) { return this; } flatMap(_f) { return this; } mapErr(f2) { return new Failure(f2(this.error)); } bimap(_succ, fail) { return this.mapErr(fail); } orElse(value) { return value; } cast() { return this; } orElseThrow(message) { if (message) throw new Error(message(this.error)); else throw new Error("" + this.error); } }; var Result; (function(Result2) { function success(value) { return new Success(value); } Result2.success = success; function failure(error2) { return new Failure(error2); } Result2.failure = failure; function flatMap2(first, second, f2) { if (first.successful) { if (second.successful) return f2(first.value, second.value); else return failure(second.error); } else { return failure(first.error); } } Result2.flatMap2 = flatMap2; function map22(first, second, f2) { return flatMap2(first, second, (a2, b2) => success(f2(a2, b2))); } Result2.map2 = map22; })(Result || (Result = {})); var parsimmon_umd_min = { exports: {} }; (function(module3, exports2) { !function(n3, t3) { module3.exports = t3(); }("undefined" != typeof self ? self : commonjsGlobal, function() { return function(n3) { var t3 = {}; function r2(e) { if (t3[e]) return t3[e].exports; var u2 = t3[e] = { i: e, l: false, exports: {} }; return n3[e].call(u2.exports, u2, u2.exports, r2), u2.l = true, u2.exports; } return r2.m = n3, r2.c = t3, r2.d = function(n4, t4, e) { r2.o(n4, t4) || Object.defineProperty(n4, t4, { configurable: false, enumerable: true, get: e }); }, r2.r = function(n4) { Object.defineProperty(n4, "__esModule", { value: true }); }, r2.n = function(n4) { var t4 = n4 && n4.__esModule ? function() { return n4.default; } : function() { return n4; }; return r2.d(t4, "a", t4), t4; }, r2.o = function(n4, t4) { return Object.prototype.hasOwnProperty.call(n4, t4); }, r2.p = "", r2(r2.s = 0); }([function(n3, t3, r2) { function e(n4) { if (!(this instanceof e)) return new e(n4); this._ = n4; } var u2 = e.prototype; function o2(n4, t4) { for (var r3 = 0; r3 < n4; r3++) t4(r3); } function i2(n4, t4, r3) { return function(n5, t5) { o2(t5.length, function(r4) { n5(t5[r4], r4, t5); }); }(function(r4, e2, u3) { t4 = n4(t4, r4, e2, u3); }, r3), t4; } function a2(n4, t4) { return i2(function(t5, r3, e2, u3) { return t5.concat([n4(r3, e2, u3)]); }, [], t4); } function f2(n4, t4) { var r3 = { v: 0, buf: t4 }; return o2(n4, function() { var n5; r3 = { v: r3.v << 1 | (n5 = r3.buf, n5[0] >> 7), buf: function(n6) { var t5 = i2(function(n7, t6, r4, e2) { return n7.concat(r4 === e2.length - 1 ? Buffer.from([t6, 0]).readUInt16BE(0) : e2.readUInt16BE(r4)); }, [], n6); return Buffer.from(a2(function(n7) { return (n7 << 1 & 65535) >> 8; }, t5)); }(r3.buf) }; }), r3; } function c2() { return "undefined" != typeof Buffer; } function s3() { if (!c2()) throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser."); } function l3(n4) { s3(); var t4 = i2(function(n5, t5) { return n5 + t5; }, 0, n4); if (t4 % 8 != 0) throw new Error("The bits [" + n4.join(", ") + "] add up to " + t4 + " which is not an even number of bytes; the total should be divisible by 8"); var r3, u3 = t4 / 8, o3 = (r3 = function(n5) { return n5 > 48; }, i2(function(n5, t5) { return n5 || (r3(t5) ? t5 : n5); }, null, n4)); if (o3) throw new Error(o3 + " bit range requested exceeds 48 bit (6 byte) Number max."); return new e(function(t5, r4) { var e2 = u3 + r4; return e2 > t5.length ? x2(r4, u3.toString() + " bytes") : b2(e2, i2(function(n5, t6) { var r5 = f2(t6, n5.buf); return { coll: n5.coll.concat(r5.v), buf: r5.buf }; }, { coll: [], buf: t5.slice(r4, e2) }, n4).coll); }); } function h2(n4, t4) { return new e(function(r3, e2) { return s3(), e2 + t4 > r3.length ? x2(e2, t4 + " bytes for " + n4) : b2(e2 + t4, r3.slice(e2, e2 + t4)); }); } function p2(n4, t4) { if ("number" != typeof (r3 = t4) || Math.floor(r3) !== r3 || t4 < 0 || t4 > 6) throw new Error(n4 + " requires integer length in range [0, 6]."); var r3; } function d2(n4) { return p2("uintBE", n4), h2("uintBE(" + n4 + ")", n4).map(function(t4) { return t4.readUIntBE(0, n4); }); } function v2(n4) { return p2("uintLE", n4), h2("uintLE(" + n4 + ")", n4).map(function(t4) { return t4.readUIntLE(0, n4); }); } function g2(n4) { return p2("intBE", n4), h2("intBE(" + n4 + ")", n4).map(function(t4) { return t4.readIntBE(0, n4); }); } function m(n4) { return p2("intLE", n4), h2("intLE(" + n4 + ")", n4).map(function(t4) { return t4.readIntLE(0, n4); }); } function y2(n4) { return n4 instanceof e; } function E2(n4) { return "[object Array]" === {}.toString.call(n4); } function w2(n4) { return c2() && Buffer.isBuffer(n4); } function b2(n4, t4) { return { status: true, index: n4, value: t4, furthest: -1, expected: [] }; } function x2(n4, t4) { return E2(t4) || (t4 = [t4]), { status: false, index: -1, value: null, furthest: n4, expected: t4 }; } function B2(n4, t4) { if (!t4) return n4; if (n4.furthest > t4.furthest) return n4; var r3 = n4.furthest === t4.furthest ? function(n5, t5) { if (function() { if (void 0 !== e._supportsSet) return e._supportsSet; var n6 = "undefined" != typeof Set; return e._supportsSet = n6, n6; }() && Array.from) { for (var r4 = new Set(n5), u3 = 0; u3 < t5.length; u3++) r4.add(t5[u3]); var o3 = Array.from(r4); return o3.sort(), o3; } for (var i3 = {}, a3 = 0; a3 < n5.length; a3++) i3[n5[a3]] = true; for (var f3 = 0; f3 < t5.length; f3++) i3[t5[f3]] = true; var c3 = []; for (var s4 in i3) ({}).hasOwnProperty.call(i3, s4) && c3.push(s4); return c3.sort(), c3; }(n4.expected, t4.expected) : t4.expected; return { status: n4.status, index: n4.index, value: n4.value, furthest: t4.furthest, expected: r3 }; } var j2 = {}; function S2(n4, t4) { if (w2(n4)) return { offset: t4, line: -1, column: -1 }; n4 in j2 || (j2[n4] = {}); for (var r3 = j2[n4], e2 = 0, u3 = 0, o3 = 0, i3 = t4; i3 >= 0; ) { if (i3 in r3) { e2 = r3[i3].line, 0 === o3 && (o3 = r3[i3].lineStart); break; } ("\n" === n4.charAt(i3) || "\r" === n4.charAt(i3) && "\n" !== n4.charAt(i3 + 1)) && (u3++, 0 === o3 && (o3 = i3 + 1)), i3--; } var a3 = e2 + u3, f3 = t4 - o3; return r3[t4] = { line: a3, lineStart: o3 }, { offset: t4, line: a3 + 1, column: f3 + 1 }; } function _24(n4) { if (!y2(n4)) throw new Error("not a parser: " + n4); } function L2(n4, t4) { return "string" == typeof n4 ? n4.charAt(t4) : n4[t4]; } function O2(n4) { if ("number" != typeof n4) throw new Error("not a number: " + n4); } function k2(n4) { if ("function" != typeof n4) throw new Error("not a function: " + n4); } function P2(n4) { if ("string" != typeof n4) throw new Error("not a string: " + n4); } var q2 = 2, A2 = 3, I2 = 8, F2 = 5 * I2, M2 = 4 * I2, z2 = " "; function R2(n4, t4) { return new Array(t4 + 1).join(n4); } function U2(n4, t4, r3) { var e2 = t4 - n4.length; return e2 <= 0 ? n4 : R2(r3, e2) + n4; } function W2(n4, t4, r3, e2) { return { from: n4 - t4 > 0 ? n4 - t4 : 0, to: n4 + r3 > e2 ? e2 : n4 + r3 }; } function D2(n4, t4) { var r3, e2, u3, o3, f3, c3 = t4.index, s4 = c3.offset, l4 = 1; if (s4 === n4.length) return "Got the end of the input"; if (w2(n4)) { var h3 = s4 - s4 % I2, p3 = s4 - h3, d3 = W2(h3, F2, M2 + I2, n4.length), v3 = a2(function(n5) { return a2(function(n6) { return U2(n6.toString(16), 2, "0"); }, n5); }, function(n5, t5) { var r4 = n5.length, e3 = [], u4 = 0; if (r4 <= t5) return [n5.slice()]; for (var o4 = 0; o4 < r4; o4++) e3[u4] || e3.push([]), e3[u4].push(n5[o4]), (o4 + 1) % t5 == 0 && u4++; return e3; }(n4.slice(d3.from, d3.to).toJSON().data, I2)); o3 = function(n5) { return 0 === n5.from && 1 === n5.to ? { from: n5.from, to: n5.to } : { from: n5.from / I2, to: Math.floor(n5.to / I2) }; }(d3), e2 = h3 / I2, r3 = 3 * p3, p3 >= 4 && (r3 += 1), l4 = 2, u3 = a2(function(n5) { return n5.length <= 4 ? n5.join(" ") : n5.slice(0, 4).join(" ") + " " + n5.slice(4).join(" "); }, v3), (f3 = (8 * (o3.to > 0 ? o3.to - 1 : o3.to)).toString(16).length) < 2 && (f3 = 2); } else { var g3 = n4.split(/\r\n|[\n\r\u2028\u2029]/); r3 = c3.column - 1, e2 = c3.line - 1, o3 = W2(e2, q2, A2, g3.length), u3 = g3.slice(o3.from, o3.to), f3 = o3.to.toString().length; } var m2 = e2 - o3.from; return w2(n4) && (f3 = (8 * (o3.to > 0 ? o3.to - 1 : o3.to)).toString(16).length) < 2 && (f3 = 2), i2(function(t5, e3, u4) { var i3, a3 = u4 === m2, c4 = a3 ? "> " : z2; return i3 = w2(n4) ? U2((8 * (o3.from + u4)).toString(16), f3, "0") : U2((o3.from + u4 + 1).toString(), f3, " "), [].concat(t5, [c4 + i3 + " | " + e3], a3 ? [z2 + R2(" ", f3) + " | " + U2("", r3, " ") + R2("^", l4)] : []); }, [], u3).join("\n"); } function N(n4, t4) { return ["\n", "-- PARSING FAILED " + R2("-", 50), "\n\n", D2(n4, t4), "\n\n", (r3 = t4.expected, 1 === r3.length ? "Expected:\n\n" + r3[0] : "Expected one of the following: \n\n" + r3.join(", ")), "\n"].join(""); var r3; } function G2(n4) { return void 0 !== n4.flags ? n4.flags : [n4.global ? "g" : "", n4.ignoreCase ? "i" : "", n4.multiline ? "m" : "", n4.unicode ? "u" : "", n4.sticky ? "y" : ""].join(""); } function C() { for (var n4 = [].slice.call(arguments), t4 = n4.length, r3 = 0; r3 < t4; r3 += 1) _24(n4[r3]); return e(function(r4, e2) { for (var u3, o3 = new Array(t4), i3 = 0; i3 < t4; i3 += 1) { if (!(u3 = B2(n4[i3]._(r4, e2), u3)).status) return u3; o3[i3] = u3.value, e2 = u3.index; } return B2(b2(e2, o3), u3); }); } function J() { var n4 = [].slice.call(arguments); if (0 === n4.length) throw new Error("seqMap needs at least one argument"); var t4 = n4.pop(); return k2(t4), C.apply(null, n4).map(function(n5) { return t4.apply(null, n5); }); } function T() { var n4 = [].slice.call(arguments), t4 = n4.length; if (0 === t4) return Y2("zero alternates"); for (var r3 = 0; r3 < t4; r3 += 1) _24(n4[r3]); return e(function(t5, r4) { for (var e2, u3 = 0; u3 < n4.length; u3 += 1) if ((e2 = B2(n4[u3]._(t5, r4), e2)).status) return e2; return e2; }); } function V(n4, t4) { return H2(n4, t4).or(X2([])); } function H2(n4, t4) { return _24(n4), _24(t4), J(n4, t4.then(n4).many(), function(n5, t5) { return [n5].concat(t5); }); } function K2(n4) { P2(n4); var t4 = "'" + n4 + "'"; return e(function(r3, e2) { var u3 = e2 + n4.length, o3 = r3.slice(e2, u3); return o3 === n4 ? b2(u3, o3) : x2(e2, t4); }); } function Q2(n4, t4) { !function(n5) { if (!(n5 instanceof RegExp)) throw new Error("not a regexp: " + n5); for (var t5 = G2(n5), r4 = 0; r4 < t5.length; r4++) { var e2 = t5.charAt(r4); if ("i" !== e2 && "m" !== e2 && "u" !== e2 && "s" !== e2) throw new Error('unsupported regexp flag "' + e2 + '": ' + n5); } }(n4), arguments.length >= 2 ? O2(t4) : t4 = 0; var r3 = function(n5) { return RegExp("^(?:" + n5.source + ")", G2(n5)); }(n4), u3 = "" + n4; return e(function(n5, e2) { var o3 = r3.exec(n5.slice(e2)); if (o3) { if (0 <= t4 && t4 <= o3.length) { var i3 = o3[0], a3 = o3[t4]; return b2(e2 + i3.length, a3); } return x2(e2, "valid match group (0 to " + o3.length + ") in " + u3); } return x2(e2, u3); }); } function X2(n4) { return e(function(t4, r3) { return b2(r3, n4); }); } function Y2(n4) { return e(function(t4, r3) { return x2(r3, n4); }); } function Z2(n4) { if (y2(n4)) return e(function(t4, r3) { var e2 = n4._(t4, r3); return e2.index = r3, e2.value = "", e2; }); if ("string" == typeof n4) return Z2(K2(n4)); if (n4 instanceof RegExp) return Z2(Q2(n4)); throw new Error("not a string, regexp, or parser: " + n4); } function $2(n4) { return _24(n4), e(function(t4, r3) { var e2 = n4._(t4, r3), u3 = t4.slice(r3, e2.index); return e2.status ? x2(r3, 'not "' + u3 + '"') : b2(r3, null); }); } function nn2(n4) { return k2(n4), e(function(t4, r3) { var e2 = L2(t4, r3); return r3 < t4.length && n4(e2) ? b2(r3 + 1, e2) : x2(r3, "a character/byte matching " + n4); }); } function tn2(n4, t4) { arguments.length < 2 && (t4 = n4, n4 = void 0); var r3 = e(function(n5, e2) { return r3._ = t4()._, r3._(n5, e2); }); return n4 ? r3.desc(n4) : r3; } function rn2() { return Y2("fantasy-land/empty"); } u2.parse = function(n4) { if ("string" != typeof n4 && !w2(n4)) throw new Error(".parse must be called with a string or Buffer as its argument"); var t4, r3 = this.skip(an2)._(n4, 0); return t4 = r3.status ? { status: true, value: r3.value } : { status: false, index: S2(n4, r3.furthest), expected: r3.expected }, delete j2[n4], t4; }, u2.tryParse = function(n4) { var t4 = this.parse(n4); if (t4.status) return t4.value; var r3 = N(n4, t4), e2 = new Error(r3); throw e2.type = "ParsimmonError", e2.result = t4, e2; }, u2.assert = function(n4, t4) { return this.chain(function(r3) { return n4(r3) ? X2(r3) : Y2(t4); }); }, u2.or = function(n4) { return T(this, n4); }, u2.trim = function(n4) { return this.wrap(n4, n4); }, u2.wrap = function(n4, t4) { return J(n4, this, t4, function(n5, t5) { return t5; }); }, u2.thru = function(n4) { return n4(this); }, u2.then = function(n4) { return _24(n4), C(this, n4).map(function(n5) { return n5[1]; }); }, u2.many = function() { var n4 = this; return e(function(t4, r3) { for (var e2 = [], u3 = void 0; ; ) { if (!(u3 = B2(n4._(t4, r3), u3)).status) return B2(b2(r3, e2), u3); if (r3 === u3.index) throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause"); r3 = u3.index, e2.push(u3.value); } }); }, u2.tieWith = function(n4) { return P2(n4), this.map(function(t4) { if (function(n5) { if (!E2(n5)) throw new Error("not an array: " + n5); }(t4), t4.length) { P2(t4[0]); for (var r3 = t4[0], e2 = 1; e2 < t4.length; e2++) P2(t4[e2]), r3 += n4 + t4[e2]; return r3; } return ""; }); }, u2.tie = function() { return this.tieWith(""); }, u2.times = function(n4, t4) { var r3 = this; return arguments.length < 2 && (t4 = n4), O2(n4), O2(t4), e(function(e2, u3) { for (var o3 = [], i3 = void 0, a3 = void 0, f3 = 0; f3 < n4; f3 += 1) { if (a3 = B2(i3 = r3._(e2, u3), a3), !i3.status) return a3; u3 = i3.index, o3.push(i3.value); } for (; f3 < t4 && (a3 = B2(i3 = r3._(e2, u3), a3), i3.status); f3 += 1) u3 = i3.index, o3.push(i3.value); return B2(b2(u3, o3), a3); }); }, u2.result = function(n4) { return this.map(function() { return n4; }); }, u2.atMost = function(n4) { return this.times(0, n4); }, u2.atLeast = function(n4) { return J(this.times(n4), this.many(), function(n5, t4) { return n5.concat(t4); }); }, u2.map = function(n4) { k2(n4); var t4 = this; return e(function(r3, e2) { var u3 = t4._(r3, e2); return u3.status ? B2(b2(u3.index, n4(u3.value)), u3) : u3; }); }, u2.contramap = function(n4) { k2(n4); var t4 = this; return e(function(r3, e2) { var u3 = t4.parse(n4(r3.slice(e2))); return u3.status ? b2(e2 + r3.length, u3.value) : u3; }); }, u2.promap = function(n4, t4) { return k2(n4), k2(t4), this.contramap(n4).map(t4); }, u2.skip = function(n4) { return C(this, n4).map(function(n5) { return n5[0]; }); }, u2.mark = function() { return J(en2, this, en2, function(n4, t4, r3) { return { start: n4, value: t4, end: r3 }; }); }, u2.node = function(n4) { return J(en2, this, en2, function(t4, r3, e2) { return { name: n4, value: r3, start: t4, end: e2 }; }); }, u2.sepBy = function(n4) { return V(this, n4); }, u2.sepBy1 = function(n4) { return H2(this, n4); }, u2.lookahead = function(n4) { return this.skip(Z2(n4)); }, u2.notFollowedBy = function(n4) { return this.skip($2(n4)); }, u2.desc = function(n4) { E2(n4) || (n4 = [n4]); var t4 = this; return e(function(r3, e2) { var u3 = t4._(r3, e2); return u3.status || (u3.expected = n4), u3; }); }, u2.fallback = function(n4) { return this.or(X2(n4)); }, u2.ap = function(n4) { return J(n4, this, function(n5, t4) { return n5(t4); }); }, u2.chain = function(n4) { var t4 = this; return e(function(r3, e2) { var u3 = t4._(r3, e2); return u3.status ? B2(n4(u3.value)._(r3, u3.index), u3) : u3; }); }, u2.concat = u2.or, u2.empty = rn2, u2.of = X2, u2["fantasy-land/ap"] = u2.ap, u2["fantasy-land/chain"] = u2.chain, u2["fantasy-land/concat"] = u2.concat, u2["fantasy-land/empty"] = u2.empty, u2["fantasy-land/of"] = u2.of, u2["fantasy-land/map"] = u2.map; var en2 = e(function(n4, t4) { return b2(t4, S2(n4, t4)); }), un2 = e(function(n4, t4) { return t4 >= n4.length ? x2(t4, "any character/byte") : b2(t4 + 1, L2(n4, t4)); }), on3 = e(function(n4, t4) { return b2(n4.length, n4.slice(t4)); }), an2 = e(function(n4, t4) { return t4 < n4.length ? x2(t4, "EOF") : b2(t4, null); }), fn3 = Q2(/[0-9]/).desc("a digit"), cn2 = Q2(/[0-9]*/).desc("optional digits"), sn2 = Q2(/[a-z]/i).desc("a letter"), ln2 = Q2(/[a-z]*/i).desc("optional letters"), hn = Q2(/\s*/).desc("optional whitespace"), pn2 = Q2(/\s+/).desc("whitespace"), dn2 = K2("\r"), vn2 = K2("\n"), gn = K2("\r\n"), mn = T(gn, vn2, dn2).desc("newline"), yn = T(mn, an2); e.all = on3, e.alt = T, e.any = un2, e.cr = dn2, e.createLanguage = function(n4) { var t4 = {}; for (var r3 in n4) ({}).hasOwnProperty.call(n4, r3) && function(r4) { t4[r4] = tn2(function() { return n4[r4](t4); }); }(r3); return t4; }, e.crlf = gn, e.custom = function(n4) { return e(n4(b2, x2)); }, e.digit = fn3, e.digits = cn2, e.empty = rn2, e.end = yn, e.eof = an2, e.fail = Y2, e.formatError = N, e.index = en2, e.isParser = y2, e.lazy = tn2, e.letter = sn2, e.letters = ln2, e.lf = vn2, e.lookahead = Z2, e.makeFailure = x2, e.makeSuccess = b2, e.newline = mn, e.noneOf = function(n4) { return nn2(function(t4) { return n4.indexOf(t4) < 0; }).desc("none of '" + n4 + "'"); }, e.notFollowedBy = $2, e.of = X2, e.oneOf = function(n4) { for (var t4 = n4.split(""), r3 = 0; r3 < t4.length; r3++) t4[r3] = "'" + t4[r3] + "'"; return nn2(function(t5) { return n4.indexOf(t5) >= 0; }).desc(t4); }, e.optWhitespace = hn, e.Parser = e, e.range = function(n4, t4) { return nn2(function(r3) { return n4 <= r3 && r3 <= t4; }).desc(n4 + "-" + t4); }, e.regex = Q2, e.regexp = Q2, e.sepBy = V, e.sepBy1 = H2, e.seq = C, e.seqMap = J, e.seqObj = function() { for (var n4, t4 = {}, r3 = 0, u3 = (n4 = arguments, Array.prototype.slice.call(n4)), o3 = u3.length, i3 = 0; i3 < o3; i3 += 1) { var a3 = u3[i3]; if (!y2(a3)) { if (E2(a3) && 2 === a3.length && "string" == typeof a3[0] && y2(a3[1])) { var f3 = a3[0]; if (Object.prototype.hasOwnProperty.call(t4, f3)) throw new Error("seqObj: duplicate key " + f3); t4[f3] = true, r3++; continue; } throw new Error("seqObj arguments must be parsers or [string, parser] array pairs."); } } if (0 === r3) throw new Error("seqObj expects at least one named parser, found zero"); return e(function(n5, t5) { for (var r4, e2 = {}, i4 = 0; i4 < o3; i4 += 1) { var a4, f4; if (E2(u3[i4]) ? (a4 = u3[i4][0], f4 = u3[i4][1]) : (a4 = null, f4 = u3[i4]), !(r4 = B2(f4._(n5, t5), r4)).status) return r4; a4 && (e2[a4] = r4.value), t5 = r4.index; } return B2(b2(t5, e2), r4); }); }, e.string = K2, e.succeed = X2, e.takeWhile = function(n4) { return k2(n4), e(function(t4, r3) { for (var e2 = r3; e2 < t4.length && n4(L2(t4, e2)); ) e2++; return b2(e2, t4.slice(r3, e2)); }); }, e.test = nn2, e.whitespace = pn2, e["fantasy-land/empty"] = rn2, e["fantasy-land/of"] = X2, e.Binary = { bitSeq: l3, bitSeqObj: function(n4) { s3(); var t4 = {}, r3 = 0, e2 = a2(function(n5) { if (E2(n5)) { var e3 = n5; if (2 !== e3.length) throw new Error("[" + e3.join(", ") + "] should be length 2, got length " + e3.length); if (P2(e3[0]), O2(e3[1]), Object.prototype.hasOwnProperty.call(t4, e3[0])) throw new Error("duplicate key in bitSeqObj: " + e3[0]); return t4[e3[0]] = true, r3++, e3; } return O2(n5), [null, n5]; }, n4); if (r3 < 1) throw new Error("bitSeqObj expects at least one named pair, got [" + n4.join(", ") + "]"); var u3 = a2(function(n5) { return n5[0]; }, e2); return l3(a2(function(n5) { return n5[1]; }, e2)).map(function(n5) { return i2(function(n6, t5) { return null !== t5[0] && (n6[t5[0]] = t5[1]), n6; }, {}, a2(function(t5, r4) { return [t5, n5[r4]]; }, u3)); }); }, byte: function(n4) { if (s3(), O2(n4), n4 > 255) throw new Error("Value specified to byte constructor (" + n4 + "=0x" + n4.toString(16) + ") is larger in value than a single byte."); var t4 = (n4 > 15 ? "0x" : "0x0") + n4.toString(16); return e(function(r3, e2) { var u3 = L2(r3, e2); return u3 === n4 ? b2(e2 + 1, u3) : x2(e2, t4); }); }, buffer: function(n4) { return h2("buffer", n4).map(function(n5) { return Buffer.from(n5); }); }, encodedString: function(n4, t4) { return h2("string", t4).map(function(t5) { return t5.toString(n4); }); }, uintBE: d2, uint8BE: d2(1), uint16BE: d2(2), uint32BE: d2(4), uintLE: v2, uint8LE: v2(1), uint16LE: v2(2), uint32LE: v2(4), intBE: g2, int8BE: g2(1), int16BE: g2(2), int32BE: g2(4), intLE: m, int8LE: m(1), int16LE: m(2), int32LE: m(4), floatBE: h2("floatBE", 4).map(function(n4) { return n4.readFloatBE(0); }), floatLE: h2("floatLE", 4).map(function(n4) { return n4.readFloatLE(0); }), doubleBE: h2("doubleBE", 8).map(function(n4) { return n4.readDoubleBE(0); }), doubleLE: h2("doubleLE", 8).map(function(n4) { return n4.readDoubleLE(0); }) }, n3.exports = e; }]); }); })(parsimmon_umd_min); var emojiRegex = () => { return /(?:[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDD-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF6](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC2\uDED0-\uDED9\uDEE0-\uDEE7]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF-\uDDB3\uDDBC\uDDBD]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?))/g; }; function normalizeDuration(dur) { if (dur === void 0 || dur === null) return dur; return dur.shiftTo("years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds").normalize(); } function getFileTitle(path) { if (path.includes("/")) path = path.substring(path.lastIndexOf("/") + 1); if (path.endsWith(".md")) path = path.substring(0, path.length - 3); return path; } parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regex(new RegExp(emojiRegex(), "")), parsimmon_umd_min.exports.regex(/[0-9\p{Letter}_-]+/u).map((str) => str.toLocaleLowerCase()), parsimmon_umd_min.exports.whitespace.map((_24) => "-"), parsimmon_umd_min.exports.any.map((_24) => "")).many().map((result) => result.join("")); var HEADER_CANONICALIZER = parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regex(new RegExp(emojiRegex(), "")), parsimmon_umd_min.exports.regex(/[0-9\p{Letter}_-]+/u), parsimmon_umd_min.exports.whitespace.map((_24) => " "), parsimmon_umd_min.exports.any.map((_24) => " ")).many().map((result) => { return result.join("").split(/\s+/).join(" ").trim(); }); function normalizeHeaderForLink(header) { return HEADER_CANONICALIZER.tryParse(header); } function renderMinimalDuration(dur) { dur = normalizeDuration(dur); let result = ""; if (dur.years) result += `${dur.years} years, `; if (dur.months) result += `${dur.months} months, `; if (dur.weeks) result += `${dur.weeks} weeks, `; if (dur.days) result += `${dur.days} days, `; if (dur.hours) result += `${dur.hours} hours, `; if (dur.minutes) result += `${dur.minutes} minutes, `; if (dur.seconds) result += `${Math.round(dur.seconds)} seconds, `; if (dur.milliseconds) result += `${Math.round(dur.milliseconds)} ms, `; if (result.endsWith(", ")) result = result.substring(0, result.length - 2); return result; } var Values; (function(Values2) { function toString2(field, setting = DEFAULT_QUERY_SETTINGS, recursive = false) { let wrapped = wrapValue(field); if (!wrapped) return setting.renderNullAs; switch (wrapped.type) { case "null": return setting.renderNullAs; case "string": return wrapped.value; case "number": case "boolean": return "" + wrapped.value; case "html": return wrapped.value.outerHTML; case "widget": return wrapped.value.markdown(); case "link": return wrapped.value.markdown(); case "function": return ""; case "array": let result = ""; if (recursive) result += "["; result += wrapped.value.map((f2) => toString2(f2, setting, true)).join(", "); if (recursive) result += "]"; return result; case "object": return "{ " + Object.entries(wrapped.value).map((e) => e[0] + ": " + toString2(e[1], setting, true)).join(", ") + " }"; case "date": if (wrapped.value.second == 0 && wrapped.value.hour == 0 && wrapped.value.minute == 0) { return wrapped.value.toFormat(setting.defaultDateFormat); } return wrapped.value.toFormat(setting.defaultDateTimeFormat); case "duration": return renderMinimalDuration(wrapped.value); } } Values2.toString = toString2; function wrapValue(val) { if (isNull(val)) return { type: "null", value: val }; else if (isNumber3(val)) return { type: "number", value: val }; else if (isString3(val)) return { type: "string", value: val }; else if (isBoolean2(val)) return { type: "boolean", value: val }; else if (isDuration(val)) return { type: "duration", value: val }; else if (isDate4(val)) return { type: "date", value: val }; else if (isWidget(val)) return { type: "widget", value: val }; else if (isArray(val)) return { type: "array", value: val }; else if (isLink(val)) return { type: "link", value: val }; else if (isFunction(val)) return { type: "function", value: val }; else if (isHtml(val)) return { type: "html", value: val }; else if (isObject(val)) return { type: "object", value: val }; else return void 0; } Values2.wrapValue = wrapValue; function mapLeaves(val, func7) { if (isObject(val)) { let result = {}; for (let [key, value] of Object.entries(val)) result[key] = mapLeaves(value, func7); return result; } else if (isArray(val)) { let result = []; for (let value of val) result.push(mapLeaves(value, func7)); return result; } else { return func7(val); } } Values2.mapLeaves = mapLeaves; function compareValue(val1, val2, linkNormalizer) { var _a, _b; if (val1 === void 0) val1 = null; if (val2 === void 0) val2 = null; if (val1 === null && val2 === null) return 0; else if (val1 === null) return -1; else if (val2 === null) return 1; let wrap1 = wrapValue(val1); let wrap2 = wrapValue(val2); if (wrap1 === void 0 && wrap2 === void 0) return 0; else if (wrap1 === void 0) return -1; else if (wrap2 === void 0) return 1; if (wrap1.type != wrap2.type) return wrap1.type.localeCompare(wrap2.type); if (wrap1.value === wrap2.value) return 0; switch (wrap1.type) { case "string": return wrap1.value.localeCompare(wrap2.value); case "number": if (wrap1.value < wrap2.value) return -1; else if (wrap1.value == wrap2.value) return 0; return 1; case "null": return 0; case "boolean": if (wrap1.value == wrap2.value) return 0; else return wrap1.value ? 1 : -1; case "link": let link1 = wrap1.value; let link2 = wrap2.value; let normalize = linkNormalizer !== null && linkNormalizer !== void 0 ? linkNormalizer : (x2) => x2; let pathCompare = normalize(link1.path).localeCompare(normalize(link2.path)); if (pathCompare != 0) return pathCompare; let typeCompare = link1.type.localeCompare(link2.type); if (typeCompare != 0) return typeCompare; if (link1.subpath && !link2.subpath) return 1; if (!link1.subpath && link2.subpath) return -1; if (!link1.subpath && !link2.subpath) return 0; return ((_a = link1.subpath) !== null && _a !== void 0 ? _a : "").localeCompare((_b = link2.subpath) !== null && _b !== void 0 ? _b : ""); case "date": return wrap1.value < wrap2.value ? -1 : wrap1.value.equals(wrap2.value) ? 0 : 1; case "duration": return wrap1.value < wrap2.value ? -1 : wrap1.value.equals(wrap2.value) ? 0 : 1; case "array": let f1 = wrap1.value; let f2 = wrap2.value; for (let index2 = 0; index2 < Math.min(f1.length, f2.length); index2++) { let comp = compareValue(f1[index2], f2[index2]); if (comp != 0) return comp; } return f1.length - f2.length; case "object": let o1 = wrap1.value; let o2 = wrap2.value; let k1 = Array.from(Object.keys(o1)); let k2 = Array.from(Object.keys(o2)); k1.sort(); k2.sort(); let keyCompare = compareValue(k1, k2); if (keyCompare != 0) return keyCompare; for (let key of k1) { let comp = compareValue(o1[key], o2[key]); if (comp != 0) return comp; } return 0; case "widget": case "html": case "function": return 0; } } Values2.compareValue = compareValue; function typeOf(val) { var _a; return (_a = wrapValue(val)) === null || _a === void 0 ? void 0 : _a.type; } Values2.typeOf = typeOf; function isTruthy(field) { let wrapped = wrapValue(field); if (!wrapped) return false; switch (wrapped.type) { case "number": return wrapped.value != 0; case "string": return wrapped.value.length > 0; case "boolean": return wrapped.value; case "link": return !!wrapped.value.path; case "date": return wrapped.value.toMillis() != 0; case "duration": return wrapped.value.as("seconds") != 0; case "object": return Object.keys(wrapped.value).length > 0; case "array": return wrapped.value.length > 0; case "null": return false; case "html": case "widget": case "function": return true; } } Values2.isTruthy = isTruthy; function deepCopy(field) { if (field === null || field === void 0) return field; if (Values2.isArray(field)) { return [].concat(field.map((v2) => deepCopy(v2))); } else if (Values2.isObject(field)) { let result = {}; for (let [key, value] of Object.entries(field)) result[key] = deepCopy(value); return result; } else { return field; } } Values2.deepCopy = deepCopy; function isString3(val) { return typeof val == "string"; } Values2.isString = isString3; function isNumber3(val) { return typeof val == "number"; } Values2.isNumber = isNumber3; function isDate4(val) { return val instanceof DateTime_1; } Values2.isDate = isDate4; function isDuration(val) { return val instanceof Duration_1; } Values2.isDuration = isDuration; function isNull(val) { return val === null || val === void 0; } Values2.isNull = isNull; function isArray(val) { return Array.isArray(val); } Values2.isArray = isArray; function isBoolean2(val) { return typeof val === "boolean"; } Values2.isBoolean = isBoolean2; function isLink(val) { return val instanceof Link2; } Values2.isLink = isLink; function isWidget(val) { return val instanceof Widget; } Values2.isWidget = isWidget; function isHtml(val) { if (typeof HTMLElement !== "undefined") { return val instanceof HTMLElement; } else { return false; } } Values2.isHtml = isHtml; function isObject(val) { return typeof val == "object" && !isHtml(val) && !isWidget(val) && !isArray(val) && !isDuration(val) && !isDate4(val) && !isLink(val) && val !== void 0 && !isNull(val); } Values2.isObject = isObject; function isFunction(val) { return typeof val == "function"; } Values2.isFunction = isFunction; })(Values || (Values = {})); var Groupings; (function(Groupings2) { function isElementGroup(entry) { return Values.isObject(entry) && Object.keys(entry).length == 2 && "key" in entry && "rows" in entry; } Groupings2.isElementGroup = isElementGroup; function isGrouping(entry) { for (let element2 of entry) if (!isElementGroup(element2)) return false; return true; } Groupings2.isGrouping = isGrouping; function count(elements) { if (isGrouping(elements)) { let result = 0; for (let subgroup of elements) result += count(subgroup.rows); return result; } else { return elements.length; } } Groupings2.count = count; })(Groupings || (Groupings = {})); var Link2 = class { constructor(fields) { Object.assign(this, fields); } static file(path, embed = false, display) { return new Link2({ path, embed, display, subpath: void 0, type: "file" }); } static infer(linkpath, embed = false, display) { if (linkpath.includes("#^")) { let split = linkpath.split("#^"); return Link2.block(split[0], split[1], embed, display); } else if (linkpath.includes("#")) { let split = linkpath.split("#"); return Link2.header(split[0], split[1], embed, display); } else return Link2.file(linkpath, embed, display); } static header(path, header, embed, display) { return new Link2({ path, embed, display, subpath: normalizeHeaderForLink(header), type: "header" }); } static block(path, blockId, embed, display) { return new Link2({ path, embed, display, subpath: blockId, type: "block" }); } static fromObject(object) { return new Link2(object); } equals(other) { if (other == void 0 || other == null) return false; return this.path == other.path && this.type == other.type && this.subpath == other.subpath; } toString() { return this.markdown(); } toObject() { return { path: this.path, type: this.type, subpath: this.subpath, display: this.display, embed: this.embed }; } withPath(path) { return new Link2(Object.assign({}, this, { path })); } withDisplay(display) { return new Link2(Object.assign({}, this, { display })); } withHeader(header) { return Link2.header(this.path, header, this.embed, this.display); } toFile() { return Link2.file(this.path, this.embed, this.display); } toEmbed() { if (this.embed) { return this; } else { let link = new Link2(this); link.embed = true; return link; } } fromEmbed() { if (!this.embed) { return this; } else { let link = new Link2(this); link.embed = false; return link; } } markdown() { let result = (this.embed ? "!" : "") + "[[" + this.obsidianLink(); if (this.display) { result += "|" + this.display; } else { result += "|" + getFileTitle(this.path); if (this.type == "header" || this.type == "block") result += " > " + this.subpath; } result += "]]"; return result; } obsidianLink() { var _a, _b; const escaped = this.path.replace("|", "\\|"); if (this.type == "header") return escaped + "#" + ((_a = this.subpath) === null || _a === void 0 ? void 0 : _a.replace("|", "\\|")); if (this.type == "block") return escaped + "#^" + ((_b = this.subpath) === null || _b === void 0 ? void 0 : _b.replace("|", "\\|")); else return escaped; } fileName() { return getFileTitle(this.path).replace(".md", ""); } }; var Widget = class { constructor($widget) { this.$widget = $widget; } }; var ListPairWidget = class extends Widget { constructor(key, value) { super("dataview:list-pair"); this.key = key; this.value = value; } markdown() { return `${Values.toString(this.key)}: ${Values.toString(this.value)}`; } }; var ExternalLinkWidget = class extends Widget { constructor(url, display) { super("dataview:external-link"); this.url = url; this.display = display; } markdown() { var _a; return `[${(_a = this.display) !== null && _a !== void 0 ? _a : this.url}](${this.url})`; } }; var Widgets; (function(Widgets2) { function listPair(key, value) { return new ListPairWidget(key, value); } Widgets2.listPair = listPair; function externalLink(url, display) { return new ExternalLinkWidget(url, display); } Widgets2.externalLink = externalLink; function isListPair(widget) { return widget.$widget === "dataview:list-pair"; } Widgets2.isListPair = isListPair; function isExternalLink(widget) { return widget.$widget === "dataview:external-link"; } Widgets2.isExternalLink = isExternalLink; function isBuiltin(widget) { return isListPair(widget) || isExternalLink(widget); } Widgets2.isBuiltin = isBuiltin; })(Widgets || (Widgets = {})); var Fields; (function(Fields2) { function variable(name) { return { type: "variable", name }; } Fields2.variable = variable; function literal(value) { return { type: "literal", value }; } Fields2.literal = literal; function binaryOp(left6, op, right6) { return { type: "binaryop", left: left6, op, right: right6 }; } Fields2.binaryOp = binaryOp; function index2(obj, index3) { return { type: "index", object: obj, index: index3 }; } Fields2.index = index2; function indexVariable(name) { let parts = name.split("."); let result = Fields2.variable(parts[0]); for (let index3 = 1; index3 < parts.length; index3++) { result = Fields2.index(result, Fields2.literal(parts[index3])); } return result; } Fields2.indexVariable = indexVariable; function lambda(args, value) { return { type: "lambda", arguments: args, value }; } Fields2.lambda = lambda; function func7(func8, args) { return { type: "function", func: func8, arguments: args }; } Fields2.func = func7; function list(values) { return { type: "list", values }; } Fields2.list = list; function object(values) { return { type: "object", values }; } Fields2.object = object; function negate(child) { return { type: "negated", child }; } Fields2.negate = negate; function isCompareOp(op) { return op == "<=" || op == "<" || op == ">" || op == ">=" || op == "!=" || op == "="; } Fields2.isCompareOp = isCompareOp; Fields2.NULL = Fields2.literal(null); })(Fields || (Fields = {})); var Sources; (function(Sources2) { function tag(tag2) { return { type: "tag", tag: tag2 }; } Sources2.tag = tag; function csv(path) { return { type: "csv", path }; } Sources2.csv = csv; function folder(prefix) { return { type: "folder", folder: prefix }; } Sources2.folder = folder; function link(file, incoming) { return { type: "link", file, direction: incoming ? "incoming" : "outgoing" }; } Sources2.link = link; function binaryOp(left6, op, right6) { return { type: "binaryop", left: left6, op, right: right6 }; } Sources2.binaryOp = binaryOp; function and(left6, right6) { return { type: "binaryop", left: left6, op: "&", right: right6 }; } Sources2.and = and; function or(left6, right6) { return { type: "binaryop", left: left6, op: "|", right: right6 }; } Sources2.or = or; function negate(child) { return { type: "negate", child }; } Sources2.negate = negate; function empty4() { return { type: "empty" }; } Sources2.empty = empty4; })(Sources || (Sources = {})); var EMOJI_REGEX = new RegExp(emojiRegex(), ""); var DURATION_TYPES = { year: Duration_1.fromObject({ years: 1 }), years: Duration_1.fromObject({ years: 1 }), yr: Duration_1.fromObject({ years: 1 }), yrs: Duration_1.fromObject({ years: 1 }), month: Duration_1.fromObject({ months: 1 }), months: Duration_1.fromObject({ months: 1 }), mo: Duration_1.fromObject({ months: 1 }), mos: Duration_1.fromObject({ months: 1 }), week: Duration_1.fromObject({ weeks: 1 }), weeks: Duration_1.fromObject({ weeks: 1 }), wk: Duration_1.fromObject({ weeks: 1 }), wks: Duration_1.fromObject({ weeks: 1 }), w: Duration_1.fromObject({ weeks: 1 }), day: Duration_1.fromObject({ days: 1 }), days: Duration_1.fromObject({ days: 1 }), d: Duration_1.fromObject({ days: 1 }), hour: Duration_1.fromObject({ hours: 1 }), hours: Duration_1.fromObject({ hours: 1 }), hr: Duration_1.fromObject({ hours: 1 }), hrs: Duration_1.fromObject({ hours: 1 }), h: Duration_1.fromObject({ hours: 1 }), minute: Duration_1.fromObject({ minutes: 1 }), minutes: Duration_1.fromObject({ minutes: 1 }), min: Duration_1.fromObject({ minutes: 1 }), mins: Duration_1.fromObject({ minutes: 1 }), m: Duration_1.fromObject({ minutes: 1 }), second: Duration_1.fromObject({ seconds: 1 }), seconds: Duration_1.fromObject({ seconds: 1 }), sec: Duration_1.fromObject({ seconds: 1 }), secs: Duration_1.fromObject({ seconds: 1 }), s: Duration_1.fromObject({ seconds: 1 }) }; var DATE_SHORTHANDS = { now: () => DateTime_1.local(), today: () => DateTime_1.local().startOf("day"), yesterday: () => DateTime_1.local().startOf("day").minus(Duration_1.fromObject({ days: 1 })), tomorrow: () => DateTime_1.local().startOf("day").plus(Duration_1.fromObject({ days: 1 })), sow: () => DateTime_1.local().startOf("week"), "start-of-week": () => DateTime_1.local().startOf("week"), eow: () => DateTime_1.local().endOf("week"), "end-of-week": () => DateTime_1.local().endOf("week"), soy: () => DateTime_1.local().startOf("year"), "start-of-year": () => DateTime_1.local().startOf("year"), eoy: () => DateTime_1.local().endOf("year"), "end-of-year": () => DateTime_1.local().endOf("year"), som: () => DateTime_1.local().startOf("month"), "start-of-month": () => DateTime_1.local().startOf("month"), eom: () => DateTime_1.local().endOf("month"), "end-of-month": () => DateTime_1.local().endOf("month") }; var KEYWORDS = ["FROM", "WHERE", "LIMIT", "GROUP", "FLATTEN"]; function splitOnUnescapedPipe(link) { let pipe3 = -1; while ((pipe3 = link.indexOf("|", pipe3 + 1)) >= 0) { if (pipe3 > 0 && link[pipe3 - 1] == "\\") continue; return [link.substring(0, pipe3).replace(/\\\|/g, "|"), link.substring(pipe3 + 1)]; } return [link.replace(/\\\|/g, "|"), void 0]; } function parseInnerLink(rawlink) { let [link, display] = splitOnUnescapedPipe(rawlink); return Link2.infer(link, false, display); } function createBinaryParser(child, sep, combine) { return parsimmon_umd_min.exports.seqMap(child, parsimmon_umd_min.exports.seq(parsimmon_umd_min.exports.optWhitespace, sep, parsimmon_umd_min.exports.optWhitespace, child).many(), (first, rest) => { if (rest.length == 0) return first; let node = combine(first, rest[0][1], rest[0][3]); for (let index2 = 1; index2 < rest.length; index2++) { node = combine(node, rest[index2][1], rest[index2][3]); } return node; }); } function chainOpt(base, ...funcs) { return parsimmon_umd_min.exports.custom((success, failure) => { return (input, i2) => { let result = base._(input, i2); if (!result.status) return result; for (let func7 of funcs) { let next2 = func7(result.value)._(input, result.index); if (!next2.status) return result; result = next2; } return result; }; }); } var EXPRESSION = parsimmon_umd_min.exports.createLanguage({ number: (q2) => parsimmon_umd_min.exports.regexp(/-?[0-9]+(\.[0-9]+)?/).map((str) => Number.parseFloat(str)).desc("number"), string: (q2) => parsimmon_umd_min.exports.string('"').then(parsimmon_umd_min.exports.alt(q2.escapeCharacter, parsimmon_umd_min.exports.noneOf('"\\')).atLeast(0).map((chars2) => chars2.join(""))).skip(parsimmon_umd_min.exports.string('"')).desc("string"), escapeCharacter: (_24) => parsimmon_umd_min.exports.string("\\").then(parsimmon_umd_min.exports.any).map((escaped) => { if (escaped === '"') return '"'; if (escaped === "\\") return "\\"; else return "\\" + escaped; }), bool: (_24) => parsimmon_umd_min.exports.regexp(/true|false|True|False/).map((str) => str.toLowerCase() == "true").desc("boolean ('true' or 'false')"), tag: (_24) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("#"), parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regexp(/[\p{Letter}0-9_/-]/u).desc("text"), parsimmon_umd_min.exports.regexp(EMOJI_REGEX).desc("text")).many(), (start2, rest) => start2 + rest.join("")).desc("tag ('#hello/stuff')"), identifier: (_24) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regexp(new RegExp("\\p{Letter}", "u")), parsimmon_umd_min.exports.regexp(EMOJI_REGEX).desc("text")), parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regexp(/[0-9\p{Letter}_-]/u), parsimmon_umd_min.exports.regexp(EMOJI_REGEX).desc("text")).many(), (first, rest) => first + rest.join("")).desc("variable identifier"), link: (_24) => parsimmon_umd_min.exports.regexp(/\[\[([^\[\]]*?)\]\]/u, 1).map((linkInner) => parseInnerLink(linkInner)).desc("file link"), embedLink: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("!").atMost(1), q2.link, (p2, l3) => { if (p2.length > 0) l3.embed = true; return l3; }).desc("file link"), binaryPlusMinus: (_24) => parsimmon_umd_min.exports.regexp(/\+|-/).map((str) => str).desc("'+' or '-'"), binaryMulDiv: (_24) => parsimmon_umd_min.exports.regexp(/\*|\/|%/).map((str) => str).desc("'*' or '/' or '%'"), binaryCompareOp: (_24) => parsimmon_umd_min.exports.regexp(/>=|<=|!=|>|<|=/).map((str) => str).desc("'>=' or '<=' or '!=' or '=' or '>' or '<'"), binaryBooleanOp: (_24) => parsimmon_umd_min.exports.regexp(/and|or|&|\|/i).map((str) => { if (str.toLowerCase() == "and") return "&"; else if (str.toLowerCase() == "or") return "|"; else return str; }).desc("'and' or 'or'"), rootDate: (_24) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/\d{4}/), parsimmon_umd_min.exports.string("-"), parsimmon_umd_min.exports.regexp(/\d{2}/), (year, _25, month) => { return DateTime_1.fromObject({ year: Number.parseInt(year), month: Number.parseInt(month) }); }).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"), dateShorthand: (_24) => parsimmon_umd_min.exports.alt(...Object.keys(DATE_SHORTHANDS).sort((a2, b2) => b2.length - a2.length).map(parsimmon_umd_min.exports.string)), date: (q2) => chainOpt(q2.rootDate, (ym) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("-"), parsimmon_umd_min.exports.regexp(/\d{2}/), (_24, day) => ym.set({ day: Number.parseInt(day) })), (ymd) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("T"), parsimmon_umd_min.exports.regexp(/\d{2}/), (_24, hour) => ymd.set({ hour: Number.parseInt(hour) })), (ymdh) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string(":"), parsimmon_umd_min.exports.regexp(/\d{2}/), (_24, minute) => ymdh.set({ minute: Number.parseInt(minute) })), (ymdhm) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string(":"), parsimmon_umd_min.exports.regexp(/\d{2}/), (_24, second) => ymdhm.set({ second: Number.parseInt(second) })), (ymdhms) => parsimmon_umd_min.exports.alt( parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("."), parsimmon_umd_min.exports.regexp(/\d{3}/), (_24, millisecond) => ymdhms.set({ millisecond: Number.parseInt(millisecond) })), parsimmon_umd_min.exports.succeed(ymdhms) ), (dt) => parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("+").or(parsimmon_umd_min.exports.string("-")), parsimmon_umd_min.exports.regexp(/\d{1,2}(:\d{2})?/), (pm, hr) => dt.setZone("UTC" + pm + hr, { keepLocalTime: true })), parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("Z"), () => dt.setZone("utc", { keepLocalTime: true })), parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("["), parsimmon_umd_min.exports.regexp(/[0-9A-Za-z+-\/]+/u), parsimmon_umd_min.exports.string("]"), (_a, zone, _b) => dt.setZone(zone, { keepLocalTime: true })))).assert((dt) => dt.isValid, "valid date").desc("date in format YYYY-MM[-DDTHH-MM-SS.MS]"), datePlus: (q2) => parsimmon_umd_min.exports.alt(q2.dateShorthand.map((d2) => DATE_SHORTHANDS[d2]()), q2.date).desc("date in format YYYY-MM[-DDTHH-MM-SS.MS] or in shorthand"), durationType: (_24) => parsimmon_umd_min.exports.alt(...Object.keys(DURATION_TYPES).sort((a2, b2) => b2.length - a2.length).map(parsimmon_umd_min.exports.string)), duration: (q2) => parsimmon_umd_min.exports.seqMap(q2.number, parsimmon_umd_min.exports.optWhitespace, q2.durationType, (count, _24, t3) => DURATION_TYPES[t3].mapUnits((x2) => x2 * count)).sepBy1(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace).or(parsimmon_umd_min.exports.optWhitespace)).map((durations) => durations.reduce((p2, c2) => p2.plus(c2))).desc("duration like 4hr2min"), rawNull: (_24) => parsimmon_umd_min.exports.string("null"), tagSource: (q2) => q2.tag.map((tag) => Sources.tag(tag)), csvSource: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("csv(").skip(parsimmon_umd_min.exports.optWhitespace), q2.string, parsimmon_umd_min.exports.string(")"), (_1, path, _24) => Sources.csv(path)), linkIncomingSource: (q2) => q2.link.map((link) => Sources.link(link.path, true)), linkOutgoingSource: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("outgoing(").skip(parsimmon_umd_min.exports.optWhitespace), q2.link, parsimmon_umd_min.exports.string(")"), (_1, link, _24) => Sources.link(link.path, false)), folderSource: (q2) => q2.string.map((str) => Sources.folder(str)), parensSource: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("("), parsimmon_umd_min.exports.optWhitespace, q2.source, parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string(")"), (_1, _24, field, _32, _42) => field), negateSource: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.string("-"), parsimmon_umd_min.exports.string("!")), q2.atomSource, (_24, source) => Sources.negate(source)), atomSource: (q2) => parsimmon_umd_min.exports.alt(q2.parensSource, q2.negateSource, q2.linkOutgoingSource, q2.linkIncomingSource, q2.folderSource, q2.tagSource, q2.csvSource), binaryOpSource: (q2) => createBinaryParser(q2.atomSource, q2.binaryBooleanOp.map((s3) => s3), Sources.binaryOp), source: (q2) => q2.binaryOpSource, variableField: (q2) => q2.identifier.chain((r2) => { if (KEYWORDS.includes(r2.toUpperCase())) { return parsimmon_umd_min.exports.fail("Variable fields cannot be a keyword (" + KEYWORDS.join(" or ") + ")"); } else { return parsimmon_umd_min.exports.succeed(Fields.variable(r2)); } }).desc("variable"), numberField: (q2) => q2.number.map((val) => Fields.literal(val)).desc("number"), stringField: (q2) => q2.string.map((val) => Fields.literal(val)).desc("string"), boolField: (q2) => q2.bool.map((val) => Fields.literal(val)).desc("boolean"), dateField: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("date("), parsimmon_umd_min.exports.optWhitespace, q2.datePlus, parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string(")"), (prefix, _1, date, _24, postfix) => Fields.literal(date)).desc("date"), durationField: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("dur("), parsimmon_umd_min.exports.optWhitespace, q2.duration, parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string(")"), (prefix, _1, dur, _24, postfix) => Fields.literal(dur)).desc("duration"), nullField: (q2) => q2.rawNull.map((_24) => Fields.NULL), linkField: (q2) => q2.link.map((f2) => Fields.literal(f2)), listField: (q2) => q2.field.sepBy(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)).wrap(parsimmon_umd_min.exports.string("[").skip(parsimmon_umd_min.exports.optWhitespace), parsimmon_umd_min.exports.optWhitespace.then(parsimmon_umd_min.exports.string("]"))).map((l3) => Fields.list(l3)).desc("list ('[1, 2, 3]')"), objectField: (q2) => parsimmon_umd_min.exports.seqMap(q2.identifier.or(q2.string), parsimmon_umd_min.exports.string(":").trim(parsimmon_umd_min.exports.optWhitespace), q2.field, (name, _sep, value) => { return { name, value }; }).sepBy(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)).wrap(parsimmon_umd_min.exports.string("{").skip(parsimmon_umd_min.exports.optWhitespace), parsimmon_umd_min.exports.optWhitespace.then(parsimmon_umd_min.exports.string("}"))).map((vals) => { let res = {}; for (let entry of vals) res[entry.name] = entry.value; return Fields.object(res); }).desc("object ('{ a: 1, b: 2 }')"), atomInlineField: (q2) => parsimmon_umd_min.exports.alt(q2.date, q2.duration.map((d2) => normalizeDuration(d2)), q2.string, q2.tag, q2.embedLink, q2.bool, q2.number, q2.rawNull), inlineFieldList: (q2) => q2.atomInlineField.sepBy(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace).lookahead(q2.atomInlineField)), inlineField: (q2) => parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.seqMap(q2.atomInlineField, parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace), q2.inlineFieldList, (f2, _s, l3) => [f2].concat(l3)), q2.atomInlineField), atomField: (q2) => parsimmon_umd_min.exports.alt( q2.embedLink.map((l3) => Fields.literal(l3)), q2.negatedField, q2.linkField, q2.listField, q2.objectField, q2.lambdaField, q2.parensField, q2.boolField, q2.numberField, q2.stringField, q2.dateField, q2.durationField, q2.nullField, q2.variableField ), indexField: (q2) => parsimmon_umd_min.exports.seqMap(q2.atomField, parsimmon_umd_min.exports.alt(q2.dotPostfix, q2.indexPostfix, q2.functionPostfix).many(), (obj, postfixes) => { let result = obj; for (let post of postfixes) { switch (post.type) { case "dot": result = Fields.index(result, Fields.literal(post.field)); break; case "index": result = Fields.index(result, post.field); break; case "function": result = Fields.func(result, post.fields); break; } } return result; }), negatedField: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("!"), q2.indexField, (_24, field) => Fields.negate(field)).desc("negated field"), parensField: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("("), parsimmon_umd_min.exports.optWhitespace, q2.field, parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string(")"), (_1, _24, field, _32, _42) => field), lambdaField: (q2) => parsimmon_umd_min.exports.seqMap(q2.identifier.sepBy(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)).wrap(parsimmon_umd_min.exports.string("(").trim(parsimmon_umd_min.exports.optWhitespace), parsimmon_umd_min.exports.string(")").trim(parsimmon_umd_min.exports.optWhitespace)), parsimmon_umd_min.exports.string("=>").trim(parsimmon_umd_min.exports.optWhitespace), q2.field, (ident, _ignore, value) => { return { type: "lambda", arguments: ident, value }; }), dotPostfix: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("."), q2.identifier, (_24, field) => { return { type: "dot", field }; }), indexPostfix: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("["), parsimmon_umd_min.exports.optWhitespace, q2.field, parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string("]"), (_24, _25, field, _32, _42) => { return { type: "index", field }; }), functionPostfix: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.string("("), parsimmon_umd_min.exports.optWhitespace, q2.field.sepBy(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)), parsimmon_umd_min.exports.optWhitespace, parsimmon_umd_min.exports.string(")"), (_24, _1, fields, _25, _32) => { return { type: "function", fields }; }), binaryMulDivField: (q2) => createBinaryParser(q2.indexField, q2.binaryMulDiv, Fields.binaryOp), binaryPlusMinusField: (q2) => createBinaryParser(q2.binaryMulDivField, q2.binaryPlusMinus, Fields.binaryOp), binaryCompareField: (q2) => createBinaryParser(q2.binaryPlusMinusField, q2.binaryCompareOp, Fields.binaryOp), binaryBooleanField: (q2) => createBinaryParser(q2.binaryCompareField, q2.binaryBooleanOp, Fields.binaryOp), binaryOpField: (q2) => q2.binaryBooleanField, field: (q2) => q2.binaryOpField }); function parseField(text2) { try { return Result.success(EXPRESSION.field.tryParse(text2)); } catch (error2) { return Result.failure("" + error2); } } var QueryFields; (function(QueryFields2) { function named(name, field) { return { name, field }; } QueryFields2.named = named; function sortBy4(field, dir) { return { field, direction: dir }; } QueryFields2.sortBy = sortBy4; })(QueryFields || (QueryFields = {})); function captureRaw(base) { return parsimmon_umd_min.exports.custom((success, failure) => { return (input, i2) => { let result = base._(input, i2); if (!result.status) return result; return Object.assign({}, result, { value: [result.value, input.substring(i2, result.index)] }); }; }); } function stripNewlines(text2) { return text2.split(/[\r\n]+/).map((t3) => t3.trim()).join(""); } var QUERY_LANGUAGE = parsimmon_umd_min.exports.createLanguage({ queryType: (q2) => parsimmon_umd_min.exports.alt(parsimmon_umd_min.exports.regexp(/TABLE|LIST|TASK|CALENDAR/i)).map((str) => str.toLowerCase()).desc("query type ('TABLE', 'LIST', 'TASK', or 'CALENDAR')"), explicitNamedField: (q2) => parsimmon_umd_min.exports.seqMap(EXPRESSION.field.skip(parsimmon_umd_min.exports.whitespace), parsimmon_umd_min.exports.regexp(/AS/i).skip(parsimmon_umd_min.exports.whitespace), EXPRESSION.identifier.or(EXPRESSION.string), (field, _as, ident) => QueryFields.named(ident, field)), namedField: (q2) => parsimmon_umd_min.exports.alt(q2.explicitNamedField, captureRaw(EXPRESSION.field).map(([value, text2]) => QueryFields.named(stripNewlines(text2), value))), sortField: (q2) => parsimmon_umd_min.exports.seqMap(EXPRESSION.field.skip(parsimmon_umd_min.exports.optWhitespace), parsimmon_umd_min.exports.regexp(/ASCENDING|DESCENDING|ASC|DESC/i).atMost(1), (field, dir) => { let direction = dir.length == 0 ? "ascending" : dir[0].toLowerCase(); if (direction == "desc") direction = "descending"; if (direction == "asc") direction = "ascending"; return { field, direction }; }), headerClause: (q2) => q2.queryType.skip(parsimmon_umd_min.exports.whitespace).chain((qtype) => { switch (qtype) { case "table": return parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/WITHOUT\s+ID/i).skip(parsimmon_umd_min.exports.optWhitespace).atMost(1), parsimmon_umd_min.exports.sepBy(q2.namedField, parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)), (withoutId, fields) => { return { type: "table", fields, showId: withoutId.length == 0 }; }); case "list": return parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/WITHOUT\s+ID/i).skip(parsimmon_umd_min.exports.optWhitespace).atMost(1), EXPRESSION.field.atMost(1), (withoutId, format2) => { return { type: "list", format: format2.length == 1 ? format2[0] : void 0, showId: withoutId.length == 0 }; }); case "task": return parsimmon_umd_min.exports.succeed({ type: "task" }); case "calendar": return parsimmon_umd_min.exports.seqMap(q2.namedField, (field) => { return { type: "calendar", showId: true, field }; }); default: return parsimmon_umd_min.exports.fail(`Unrecognized query type '${qtype}'`); } }).desc("TABLE or LIST or TASK or CALENDAR"), fromClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/FROM/i), parsimmon_umd_min.exports.whitespace, EXPRESSION.source, (_1, _24, source) => source), whereClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/WHERE/i), parsimmon_umd_min.exports.whitespace, EXPRESSION.field, (where, _24, field) => { return { type: "where", clause: field }; }).desc("WHERE "), sortByClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/SORT/i), parsimmon_umd_min.exports.whitespace, q2.sortField.sepBy1(parsimmon_umd_min.exports.string(",").trim(parsimmon_umd_min.exports.optWhitespace)), (sort4, _1, fields) => { return { type: "sort", fields }; }).desc("SORT field [ASC/DESC]"), limitClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/LIMIT/i), parsimmon_umd_min.exports.whitespace, EXPRESSION.field, (limit, _1, field) => { return { type: "limit", amount: field }; }).desc("LIMIT "), flattenClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/FLATTEN/i).skip(parsimmon_umd_min.exports.whitespace), q2.namedField, (_24, field) => { return { type: "flatten", field }; }).desc("FLATTEN [AS ]"), groupByClause: (q2) => parsimmon_umd_min.exports.seqMap(parsimmon_umd_min.exports.regexp(/GROUP BY/i).skip(parsimmon_umd_min.exports.whitespace), q2.namedField, (_24, field) => { return { type: "group", field }; }).desc("GROUP BY [AS ]"), clause: (q2) => parsimmon_umd_min.exports.alt(q2.fromClause, q2.whereClause, q2.sortByClause, q2.limitClause, q2.groupByClause, q2.flattenClause), query: (q2) => parsimmon_umd_min.exports.seqMap(q2.headerClause.trim(parsimmon_umd_min.exports.optWhitespace), q2.fromClause.trim(parsimmon_umd_min.exports.optWhitespace).atMost(1), q2.clause.trim(parsimmon_umd_min.exports.optWhitespace).many(), (header, from, clauses) => { return { header, source: from.length == 0 ? Sources.folder("") : from[0], operations: clauses, settings: DEFAULT_QUERY_SETTINGS }; }) }); var getAPI2 = (app2) => { var _a; if (app2) return (_a = app2.plugins.plugins.dataview) === null || _a === void 0 ? void 0 : _a.api; else return window.DataviewAPI; }; var isPluginEnabled3 = (app2) => app2.plugins.enabledPlugins.has("dataview"); exports.DATE_SHORTHANDS = DATE_SHORTHANDS; exports.DURATION_TYPES = DURATION_TYPES; exports.EXPRESSION = EXPRESSION; exports.KEYWORDS = KEYWORDS; exports.QUERY_LANGUAGE = QUERY_LANGUAGE; exports.getAPI = getAPI2; exports.isPluginEnabled = isPluginEnabled3; exports.parseField = parseField; } }); // node_modules/moment/moment.js var require_moment = __commonJS({ "node_modules/moment/moment.js"(exports, module2) { (function(global2, factory) { typeof exports === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : global2.moment = factory(); })(exports, function() { "use strict"; var hookCallback; function hooks() { return hookCallback.apply(null, arguments); } function setHookCallback(callback) { hookCallback = callback; } function isArray(input) { return input instanceof Array || Object.prototype.toString.call(input) === "[object Array]"; } function isObject(input) { return input != null && Object.prototype.toString.call(input) === "[object Object]"; } function hasOwnProp(a2, b2) { return Object.prototype.hasOwnProperty.call(a2, b2); } function isObjectEmpty(obj) { if (Object.getOwnPropertyNames) { return Object.getOwnPropertyNames(obj).length === 0; } else { var k2; for (k2 in obj) { if (hasOwnProp(obj, k2)) { return false; } } return true; } } function isUndefined(input) { return input === void 0; } function isNumber2(input) { return typeof input === "number" || Object.prototype.toString.call(input) === "[object Number]"; } function isDate3(input) { return input instanceof Date || Object.prototype.toString.call(input) === "[object Date]"; } function map8(arr, fn3) { var res = [], i2, arrLen = arr.length; for (i2 = 0; i2 < arrLen; ++i2) { res.push(fn3(arr[i2], i2)); } return res; } function extend4(a2, b2) { for (var i2 in b2) { if (hasOwnProp(b2, i2)) { a2[i2] = b2[i2]; } } if (hasOwnProp(b2, "toString")) { a2.toString = b2.toString; } if (hasOwnProp(b2, "valueOf")) { a2.valueOf = b2.valueOf; } return a2; } function createUTC(input, format3, locale2, strict) { return createLocalOrUTC(input, format3, locale2, strict, true).utc(); } function defaultParsingFlags() { return { empty: false, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: false, invalidEra: null, invalidMonth: null, invalidFormat: false, userInvalidated: false, iso: false, parsedDateParts: [], era: null, meridiem: null, rfc2822: false, weekdayMismatch: false }; } function getParsingFlags(m) { if (m._pf == null) { m._pf = defaultParsingFlags(); } return m._pf; } var some4; if (Array.prototype.some) { some4 = Array.prototype.some; } else { some4 = function(fun) { var t3 = Object(this), len = t3.length >>> 0, i2; for (i2 = 0; i2 < len; i2++) { if (i2 in t3 && fun.call(this, t3[i2], i2, t3)) { return true; } } return false; }; } function isValid(m) { if (m._isValid == null) { var flags = getParsingFlags(m), parsedParts = some4.call(flags.parsedDateParts, function(i2) { return i2 != null; }), isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts); if (m._strict) { isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === void 0; } if (Object.isFrozen == null || !Object.isFrozen(m)) { m._isValid = isNowValid; } else { return isNowValid; } } return m._isValid; } function createInvalid(flags) { var m = createUTC(NaN); if (flags != null) { extend4(getParsingFlags(m), flags); } else { getParsingFlags(m).userInvalidated = true; } return m; } var momentProperties = hooks.momentProperties = [], updateInProgress = false; function copyConfig(to2, from2) { var i2, prop, val, momentPropertiesLen = momentProperties.length; if (!isUndefined(from2._isAMomentObject)) { to2._isAMomentObject = from2._isAMomentObject; } if (!isUndefined(from2._i)) { to2._i = from2._i; } if (!isUndefined(from2._f)) { to2._f = from2._f; } if (!isUndefined(from2._l)) { to2._l = from2._l; } if (!isUndefined(from2._strict)) { to2._strict = from2._strict; } if (!isUndefined(from2._tzm)) { to2._tzm = from2._tzm; } if (!isUndefined(from2._isUTC)) { to2._isUTC = from2._isUTC; } if (!isUndefined(from2._offset)) { to2._offset = from2._offset; } if (!isUndefined(from2._pf)) { to2._pf = getParsingFlags(from2); } if (!isUndefined(from2._locale)) { to2._locale = from2._locale; } if (momentPropertiesLen > 0) { for (i2 = 0; i2 < momentPropertiesLen; i2++) { prop = momentProperties[i2]; val = from2[prop]; if (!isUndefined(val)) { to2[prop] = val; } } } return to2; } function Moment(config) { copyConfig(this, config); this._d = new Date(config._d != null ? config._d.getTime() : NaN); if (!this.isValid()) { this._d = new Date(NaN); } if (updateInProgress === false) { updateInProgress = true; hooks.updateOffset(this); updateInProgress = false; } } function isMoment(obj) { return obj instanceof Moment || obj != null && obj._isAMomentObject != null; } function warn3(msg) { if (hooks.suppressDeprecationWarnings === false && typeof console !== "undefined" && console.warn) { console.warn("Deprecation warning: " + msg); } } function deprecate(msg, fn3) { var firstTime = true; return extend4(function() { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(null, msg); } if (firstTime) { var args = [], arg, i2, key, argLen = arguments.length; for (i2 = 0; i2 < argLen; i2++) { arg = ""; if (typeof arguments[i2] === "object") { arg += "\n[" + i2 + "] "; for (key in arguments[0]) { if (hasOwnProp(arguments[0], key)) { arg += key + ": " + arguments[0][key] + ", "; } } arg = arg.slice(0, -2); } else { arg = arguments[i2]; } args.push(arg); } warn3( msg + "\nArguments: " + Array.prototype.slice.call(args).join("") + "\n" + new Error().stack ); firstTime = false; } return fn3.apply(this, arguments); }, fn3); } var deprecations = {}; function deprecateSimple(name, msg) { if (hooks.deprecationHandler != null) { hooks.deprecationHandler(name, msg); } if (!deprecations[name]) { warn3(msg); deprecations[name] = true; } } hooks.suppressDeprecationWarnings = false; hooks.deprecationHandler = null; function isFunction(input) { return typeof Function !== "undefined" && input instanceof Function || Object.prototype.toString.call(input) === "[object Function]"; } function set2(config) { var prop, i2; for (i2 in config) { if (hasOwnProp(config, i2)) { prop = config[i2]; if (isFunction(prop)) { this[i2] = prop; } else { this["_" + i2] = prop; } } } this._config = config; this._dayOfMonthOrdinalParseLenient = new RegExp( (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source ); } function mergeConfigs(parentConfig, childConfig) { var res = extend4({}, parentConfig), prop; for (prop in childConfig) { if (hasOwnProp(childConfig, prop)) { if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { res[prop] = {}; extend4(res[prop], parentConfig[prop]); extend4(res[prop], childConfig[prop]); } else if (childConfig[prop] != null) { res[prop] = childConfig[prop]; } else { delete res[prop]; } } } for (prop in parentConfig) { if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) { res[prop] = extend4({}, res[prop]); } } return res; } function Locale(config) { if (config != null) { this.set(config); } } var keys; if (Object.keys) { keys = Object.keys; } else { keys = function(obj) { var i2, res = []; for (i2 in obj) { if (hasOwnProp(obj, i2)) { res.push(i2); } } return res; }; } var defaultCalendar = { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }; function calendar(key, mom, now3) { var output2 = this._calendar[key] || this._calendar["sameElse"]; return isFunction(output2) ? output2.call(mom, now3) : output2; } function zeroFill(number, targetLength, forceSign) { var absNumber = "" + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign2 = number >= 0; return (sign2 ? forceSign ? "+" : "" : "-") + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; } var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {}; function addFormatToken(token2, padded, ordinal2, callback) { var func7 = callback; if (typeof callback === "string") { func7 = function() { return this[callback](); }; } if (token2) { formatTokenFunctions[token2] = func7; } if (padded) { formatTokenFunctions[padded[0]] = function() { return zeroFill(func7.apply(this, arguments), padded[1], padded[2]); }; } if (ordinal2) { formatTokenFunctions[ordinal2] = function() { return this.localeData().ordinal( func7.apply(this, arguments), token2 ); }; } } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { return input.replace(/^\[|\]$/g, ""); } return input.replace(/\\/g, ""); } function makeFormatFunction(format3) { var array2 = format3.match(formattingTokens), i2, length; for (i2 = 0, length = array2.length; i2 < length; i2++) { if (formatTokenFunctions[array2[i2]]) { array2[i2] = formatTokenFunctions[array2[i2]]; } else { array2[i2] = removeFormattingTokens(array2[i2]); } } return function(mom) { var output2 = "", i3; for (i3 = 0; i3 < length; i3++) { output2 += isFunction(array2[i3]) ? array2[i3].call(mom, format3) : array2[i3]; } return output2; }; } function formatMoment(m, format3) { if (!m.isValid()) { return m.localeData().invalidDate(); } format3 = expandFormat(format3, m.localeData()); formatFunctions[format3] = formatFunctions[format3] || makeFormatFunction(format3); return formatFunctions[format3](m); } function expandFormat(format3, locale2) { var i2 = 5; function replaceLongDateFormatTokens(input) { return locale2.longDateFormat(input) || input; } localFormattingTokens.lastIndex = 0; while (i2 >= 0 && localFormattingTokens.test(format3)) { format3 = format3.replace( localFormattingTokens, replaceLongDateFormatTokens ); localFormattingTokens.lastIndex = 0; i2 -= 1; } return format3; } var defaultLongDateFormat = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }; function longDateFormat(key) { var format3 = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()]; if (format3 || !formatUpper) { return format3; } this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function(tok) { if (tok === "MMMM" || tok === "MM" || tok === "DD" || tok === "dddd") { return tok.slice(1); } return tok; }).join(""); return this._longDateFormat[key]; } var defaultInvalidDate = "Invalid date"; function invalidDate() { return this._invalidDate; } var defaultOrdinal = "%d", defaultDayOfMonthOrdinalParse = /\d{1,2}/; function ordinal(number) { return this._ordinal.replace("%d", number); } var defaultRelativeTime = { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", w: "a week", ww: "%d weeks", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }; function relativeTime(number, withoutSuffix, string2, isFuture) { var output2 = this._relativeTime[string2]; return isFunction(output2) ? output2(number, withoutSuffix, string2, isFuture) : output2.replace(/%d/i, number); } function pastFuture(diff2, output2) { var format3 = this._relativeTime[diff2 > 0 ? "future" : "past"]; return isFunction(format3) ? format3(output2) : format3.replace(/%s/i, output2); } var aliases = {}; function addUnitAlias(unit, shorthand) { var lowerCase = unit.toLowerCase(); aliases[lowerCase] = aliases[lowerCase + "s"] = aliases[shorthand] = unit; } function normalizeUnits(units) { return typeof units === "string" ? aliases[units] || aliases[units.toLowerCase()] : void 0; } function normalizeObjectUnits(inputObject) { var normalizedInput = {}, normalizedProp, prop; for (prop in inputObject) { if (hasOwnProp(inputObject, prop)) { normalizedProp = normalizeUnits(prop); if (normalizedProp) { normalizedInput[normalizedProp] = inputObject[prop]; } } } return normalizedInput; } var priorities = {}; function addUnitPriority(unit, priority) { priorities[unit] = priority; } function getPrioritizedUnits(unitsObj) { var units = [], u2; for (u2 in unitsObj) { if (hasOwnProp(unitsObj, u2)) { units.push({ unit: u2, priority: priorities[u2] }); } } units.sort(function(a2, b2) { return a2.priority - b2.priority; }); return units; } function isLeapYear(year) { return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; } function absFloor(number) { if (number < 0) { return Math.ceil(number) || 0; } else { return Math.floor(number); } } function toInt(argumentForCoercion) { var coercedNumber = +argumentForCoercion, value = 0; if (coercedNumber !== 0 && isFinite(coercedNumber)) { value = absFloor(coercedNumber); } return value; } function makeGetSet(unit, keepTime) { return function(value) { if (value != null) { set$1(this, unit, value); hooks.updateOffset(this, keepTime); return this; } else { return get2(this, unit); } }; } function get2(mom, unit) { return mom.isValid() ? mom._d["get" + (mom._isUTC ? "UTC" : "") + unit]() : NaN; } function set$1(mom, unit, value) { if (mom.isValid() && !isNaN(value)) { if (unit === "FullYear" && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { value = toInt(value); mom._d["set" + (mom._isUTC ? "UTC" : "") + unit]( value, mom.month(), daysInMonth(value, mom.month()) ); } else { mom._d["set" + (mom._isUTC ? "UTC" : "") + unit](value); } } } function stringGet(units) { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](); } return this; } function stringSet(units, value) { if (typeof units === "object") { units = normalizeObjectUnits(units); var prioritized = getPrioritizedUnits(units), i2, prioritizedLen = prioritized.length; for (i2 = 0; i2 < prioritizedLen; i2++) { this[prioritized[i2].unit](units[prioritized[i2].unit]); } } else { units = normalizeUnits(units); if (isFunction(this[units])) { return this[units](value); } } return this; } var match1 = /\d/, match22 = /\d\d/, match32 = /\d{3}/, match42 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, regexes; regexes = {}; function addRegexToken(token2, regex, strictRegex) { regexes[token2] = isFunction(regex) ? regex : function(isStrict, localeData2) { return isStrict && strictRegex ? strictRegex : regex; }; } function getParseRegexForToken(token2, config) { if (!hasOwnProp(regexes, token2)) { return new RegExp(unescapeFormat(token2)); } return regexes[token2](config._strict, config._locale); } function unescapeFormat(s2) { return regexEscape2( s2.replace("\\", "").replace( /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(matched, p1, p2, p3, p4) { return p1 || p2 || p3 || p4; } ) ); } function regexEscape2(s2) { return s2.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); } var tokens = {}; function addParseToken(token2, callback) { var i2, func7 = callback, tokenLen; if (typeof token2 === "string") { token2 = [token2]; } if (isNumber2(callback)) { func7 = function(input, array2) { array2[callback] = toInt(input); }; } tokenLen = token2.length; for (i2 = 0; i2 < tokenLen; i2++) { tokens[token2[i2]] = func7; } } function addWeekParseToken(token2, callback) { addParseToken(token2, function(input, array2, config, token3) { config._w = config._w || {}; callback(input, config._w, config, token3); }); } function addTimeToArrayFromToken(token2, input, config) { if (input != null && hasOwnProp(tokens, token2)) { tokens[token2](input, config._a, config, token2); } } var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8; function mod(n2, x2) { return (n2 % x2 + x2) % x2; } var indexOf; if (Array.prototype.indexOf) { indexOf = Array.prototype.indexOf; } else { indexOf = function(o2) { var i2; for (i2 = 0; i2 < this.length; ++i2) { if (this[i2] === o2) { return i2; } } return -1; }; } function daysInMonth(year, month) { if (isNaN(year) || isNaN(month)) { return NaN; } var modMonth = mod(month, 12); year += (month - modMonth) / 12; return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2; } addFormatToken("M", ["MM", 2], "Mo", function() { return this.month() + 1; }); addFormatToken("MMM", 0, 0, function(format3) { return this.localeData().monthsShort(this, format3); }); addFormatToken("MMMM", 0, 0, function(format3) { return this.localeData().months(this, format3); }); addUnitAlias("month", "M"); addUnitPriority("month", 8); addRegexToken("M", match1to2); addRegexToken("MM", match1to2, match22); addRegexToken("MMM", function(isStrict, locale2) { return locale2.monthsShortRegex(isStrict); }); addRegexToken("MMMM", function(isStrict, locale2) { return locale2.monthsRegex(isStrict); }); addParseToken(["M", "MM"], function(input, array2) { array2[MONTH] = toInt(input) - 1; }); addParseToken(["MMM", "MMMM"], function(input, array2, config, token2) { var month = config._locale.monthsParse(input, token2, config._strict); if (month != null) { array2[MONTH] = month; } else { getParsingFlags(config).invalidMonth = input; } }); var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split( "_" ), defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord; function localeMonths(m, format3) { if (!m) { return isArray(this._months) ? this._months : this._months["standalone"]; } return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format3) ? "format" : "standalone"][m.month()]; } function localeMonthsShort(m, format3) { if (!m) { return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort["standalone"]; } return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format3) ? "format" : "standalone"][m.month()]; } function handleStrictParse(monthName, format3, strict) { var i2, ii, mom, llc = monthName.toLocaleLowerCase(); if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; for (i2 = 0; i2 < 12; ++i2) { mom = createUTC([2e3, i2]); this._shortMonthsParse[i2] = this.monthsShort( mom, "" ).toLocaleLowerCase(); this._longMonthsParse[i2] = this.months(mom, "").toLocaleLowerCase(); } } if (strict) { if (format3 === "MMM") { ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } } else { if (format3 === "MMM") { ii = indexOf.call(this._shortMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._longMonthsParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._longMonthsParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortMonthsParse, llc); return ii !== -1 ? ii : null; } } } function localeMonthsParse(monthName, format3, strict) { var i2, mom, regex; if (this._monthsParseExact) { return handleStrictParse.call(this, monthName, format3, strict); } if (!this._monthsParse) { this._monthsParse = []; this._longMonthsParse = []; this._shortMonthsParse = []; } for (i2 = 0; i2 < 12; i2++) { mom = createUTC([2e3, i2]); if (strict && !this._longMonthsParse[i2]) { this._longMonthsParse[i2] = new RegExp( "^" + this.months(mom, "").replace(".", "") + "$", "i" ); this._shortMonthsParse[i2] = new RegExp( "^" + this.monthsShort(mom, "").replace(".", "") + "$", "i" ); } if (!strict && !this._monthsParse[i2]) { regex = "^" + this.months(mom, "") + "|^" + this.monthsShort(mom, ""); this._monthsParse[i2] = new RegExp(regex.replace(".", ""), "i"); } if (strict && format3 === "MMMM" && this._longMonthsParse[i2].test(monthName)) { return i2; } else if (strict && format3 === "MMM" && this._shortMonthsParse[i2].test(monthName)) { return i2; } else if (!strict && this._monthsParse[i2].test(monthName)) { return i2; } } } function setMonth(mom, value) { var dayOfMonth; if (!mom.isValid()) { return mom; } if (typeof value === "string") { if (/^\d+$/.test(value)) { value = toInt(value); } else { value = mom.localeData().monthsParse(value); if (!isNumber2(value)) { return mom; } } } dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); mom._d["set" + (mom._isUTC ? "UTC" : "") + "Month"](value, dayOfMonth); return mom; } function getSetMonth(value) { if (value != null) { setMonth(this, value); hooks.updateOffset(this, true); return this; } else { return get2(this, "Month"); } } function getDaysInMonth() { return daysInMonth(this.year(), this.month()); } function monthsShortRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, "_monthsRegex")) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsShortStrictRegex; } else { return this._monthsShortRegex; } } else { if (!hasOwnProp(this, "_monthsShortRegex")) { this._monthsShortRegex = defaultMonthsShortRegex; } return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex; } } function monthsRegex(isStrict) { if (this._monthsParseExact) { if (!hasOwnProp(this, "_monthsRegex")) { computeMonthsParse.call(this); } if (isStrict) { return this._monthsStrictRegex; } else { return this._monthsRegex; } } else { if (!hasOwnProp(this, "_monthsRegex")) { this._monthsRegex = defaultMonthsRegex; } return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex; } } function computeMonthsParse() { function cmpLenRev(a2, b2) { return b2.length - a2.length; } var shortPieces = [], longPieces = [], mixedPieces = [], i2, mom; for (i2 = 0; i2 < 12; i2++) { mom = createUTC([2e3, i2]); shortPieces.push(this.monthsShort(mom, "")); longPieces.push(this.months(mom, "")); mixedPieces.push(this.months(mom, "")); mixedPieces.push(this.monthsShort(mom, "")); } shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); for (i2 = 0; i2 < 12; i2++) { shortPieces[i2] = regexEscape2(shortPieces[i2]); longPieces[i2] = regexEscape2(longPieces[i2]); } for (i2 = 0; i2 < 24; i2++) { mixedPieces[i2] = regexEscape2(mixedPieces[i2]); } this._monthsRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._monthsShortRegex = this._monthsRegex; this._monthsStrictRegex = new RegExp( "^(" + longPieces.join("|") + ")", "i" ); this._monthsShortStrictRegex = new RegExp( "^(" + shortPieces.join("|") + ")", "i" ); } addFormatToken("Y", 0, 0, function() { var y2 = this.year(); return y2 <= 9999 ? zeroFill(y2, 4) : "+" + y2; }); addFormatToken(0, ["YY", 2], 0, function() { return this.year() % 100; }); addFormatToken(0, ["YYYY", 4], 0, "year"); addFormatToken(0, ["YYYYY", 5], 0, "year"); addFormatToken(0, ["YYYYYY", 6, true], 0, "year"); addUnitAlias("year", "y"); addUnitPriority("year", 1); addRegexToken("Y", matchSigned); addRegexToken("YY", match1to2, match22); addRegexToken("YYYY", match1to4, match42); addRegexToken("YYYYY", match1to6, match6); addRegexToken("YYYYYY", match1to6, match6); addParseToken(["YYYYY", "YYYYYY"], YEAR); addParseToken("YYYY", function(input, array2) { array2[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); }); addParseToken("YY", function(input, array2) { array2[YEAR] = hooks.parseTwoDigitYear(input); }); addParseToken("Y", function(input, array2) { array2[YEAR] = parseInt(input, 10); }); function daysInYear(year) { return isLeapYear(year) ? 366 : 365; } hooks.parseTwoDigitYear = function(input) { return toInt(input) + (toInt(input) > 68 ? 1900 : 2e3); }; var getSetYear = makeGetSet("FullYear", true); function getIsLeapYear() { return isLeapYear(this.year()); } function createDate(y2, m, d2, h2, M2, s2, ms) { var date; if (y2 < 100 && y2 >= 0) { date = new Date(y2 + 400, m, d2, h2, M2, s2, ms); if (isFinite(date.getFullYear())) { date.setFullYear(y2); } } else { date = new Date(y2, m, d2, h2, M2, s2, ms); } return date; } function createUTCDate(y2) { var date, args; if (y2 < 100 && y2 >= 0) { args = Array.prototype.slice.call(arguments); args[0] = y2 + 400; date = new Date(Date.UTC.apply(null, args)); if (isFinite(date.getUTCFullYear())) { date.setUTCFullYear(y2); } } else { date = new Date(Date.UTC.apply(null, arguments)); } return date; } function firstWeekOffset(year, dow, doy) { var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; return -fwdlw + fwd - 1; } function dayOfYearFromWeeks(year, week, weekday, dow, doy) { var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear; if (dayOfYear <= 0) { resYear = year - 1; resDayOfYear = daysInYear(resYear) + dayOfYear; } else if (dayOfYear > daysInYear(year)) { resYear = year + 1; resDayOfYear = dayOfYear - daysInYear(year); } else { resYear = year; resDayOfYear = dayOfYear; } return { year: resYear, dayOfYear: resDayOfYear }; } function weekOfYear(mom, dow, doy) { var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear; if (week < 1) { resYear = mom.year() - 1; resWeek = week + weeksInYear(resYear, dow, doy); } else if (week > weeksInYear(mom.year(), dow, doy)) { resWeek = week - weeksInYear(mom.year(), dow, doy); resYear = mom.year() + 1; } else { resYear = mom.year(); resWeek = week; } return { week: resWeek, year: resYear }; } function weeksInYear(year, dow, doy) { var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy); return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; } addFormatToken("w", ["ww", 2], "wo", "week"); addFormatToken("W", ["WW", 2], "Wo", "isoWeek"); addUnitAlias("week", "w"); addUnitAlias("isoWeek", "W"); addUnitPriority("week", 5); addUnitPriority("isoWeek", 5); addRegexToken("w", match1to2); addRegexToken("ww", match1to2, match22); addRegexToken("W", match1to2); addRegexToken("WW", match1to2, match22); addWeekParseToken( ["w", "ww", "W", "WW"], function(input, week, config, token2) { week[token2.substr(0, 1)] = toInt(input); } ); function localeWeek(mom) { return weekOfYear(mom, this._week.dow, this._week.doy).week; } var defaultLocaleWeek = { dow: 0, doy: 6 }; function localeFirstDayOfWeek() { return this._week.dow; } function localeFirstDayOfYear() { return this._week.doy; } function getSetWeek(input) { var week = this.localeData().week(this); return input == null ? week : this.add((input - week) * 7, "d"); } function getSetISOWeek(input) { var week = weekOfYear(this, 1, 4).week; return input == null ? week : this.add((input - week) * 7, "d"); } addFormatToken("d", 0, "do", "day"); addFormatToken("dd", 0, 0, function(format3) { return this.localeData().weekdaysMin(this, format3); }); addFormatToken("ddd", 0, 0, function(format3) { return this.localeData().weekdaysShort(this, format3); }); addFormatToken("dddd", 0, 0, function(format3) { return this.localeData().weekdays(this, format3); }); addFormatToken("e", 0, 0, "weekday"); addFormatToken("E", 0, 0, "isoWeekday"); addUnitAlias("day", "d"); addUnitAlias("weekday", "e"); addUnitAlias("isoWeekday", "E"); addUnitPriority("day", 11); addUnitPriority("weekday", 11); addUnitPriority("isoWeekday", 11); addRegexToken("d", match1to2); addRegexToken("e", match1to2); addRegexToken("E", match1to2); addRegexToken("dd", function(isStrict, locale2) { return locale2.weekdaysMinRegex(isStrict); }); addRegexToken("ddd", function(isStrict, locale2) { return locale2.weekdaysShortRegex(isStrict); }); addRegexToken("dddd", function(isStrict, locale2) { return locale2.weekdaysRegex(isStrict); }); addWeekParseToken(["dd", "ddd", "dddd"], function(input, week, config, token2) { var weekday = config._locale.weekdaysParse(input, token2, config._strict); if (weekday != null) { week.d = weekday; } else { getParsingFlags(config).invalidWeekday = input; } }); addWeekParseToken(["d", "e", "E"], function(input, week, config, token2) { week[token2] = toInt(input); }); function parseWeekday(input, locale2) { if (typeof input !== "string") { return input; } if (!isNaN(input)) { return parseInt(input, 10); } input = locale2.weekdaysParse(input); if (typeof input === "number") { return input; } return null; } function parseIsoWeekday(input, locale2) { if (typeof input === "string") { return locale2.weekdaysParse(input) % 7 || 7; } return isNaN(input) ? null : input; } function shiftWeekdays(ws, n2) { return ws.slice(n2, 7).concat(ws.slice(0, n2)); } var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord; function localeWeekdays(m, format3) { var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format3) ? "format" : "standalone"]; return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays; } function localeWeekdaysShort(m) { return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort; } function localeWeekdaysMin(m) { return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin; } function handleStrictParse$1(weekdayName, format3, strict) { var i2, ii, mom, llc = weekdayName.toLocaleLowerCase(); if (!this._weekdaysParse) { this._weekdaysParse = []; this._shortWeekdaysParse = []; this._minWeekdaysParse = []; for (i2 = 0; i2 < 7; ++i2) { mom = createUTC([2e3, 1]).day(i2); this._minWeekdaysParse[i2] = this.weekdaysMin( mom, "" ).toLocaleLowerCase(); this._shortWeekdaysParse[i2] = this.weekdaysShort( mom, "" ).toLocaleLowerCase(); this._weekdaysParse[i2] = this.weekdays(mom, "").toLocaleLowerCase(); } } if (strict) { if (format3 === "dddd") { ii = indexOf.call(this._weekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format3 === "ddd") { ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } } else { if (format3 === "dddd") { ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else if (format3 === "ddd") { ii = indexOf.call(this._shortWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._minWeekdaysParse, llc); return ii !== -1 ? ii : null; } else { ii = indexOf.call(this._minWeekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._weekdaysParse, llc); if (ii !== -1) { return ii; } ii = indexOf.call(this._shortWeekdaysParse, llc); return ii !== -1 ? ii : null; } } } function localeWeekdaysParse(weekdayName, format3, strict) { var i2, mom, regex; if (this._weekdaysParseExact) { return handleStrictParse$1.call(this, weekdayName, format3, strict); } if (!this._weekdaysParse) { this._weekdaysParse = []; this._minWeekdaysParse = []; this._shortWeekdaysParse = []; this._fullWeekdaysParse = []; } for (i2 = 0; i2 < 7; i2++) { mom = createUTC([2e3, 1]).day(i2); if (strict && !this._fullWeekdaysParse[i2]) { this._fullWeekdaysParse[i2] = new RegExp( "^" + this.weekdays(mom, "").replace(".", "\\.?") + "$", "i" ); this._shortWeekdaysParse[i2] = new RegExp( "^" + this.weekdaysShort(mom, "").replace(".", "\\.?") + "$", "i" ); this._minWeekdaysParse[i2] = new RegExp( "^" + this.weekdaysMin(mom, "").replace(".", "\\.?") + "$", "i" ); } if (!this._weekdaysParse[i2]) { regex = "^" + this.weekdays(mom, "") + "|^" + this.weekdaysShort(mom, "") + "|^" + this.weekdaysMin(mom, ""); this._weekdaysParse[i2] = new RegExp(regex.replace(".", ""), "i"); } if (strict && format3 === "dddd" && this._fullWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (strict && format3 === "ddd" && this._shortWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (strict && format3 === "dd" && this._minWeekdaysParse[i2].test(weekdayName)) { return i2; } else if (!strict && this._weekdaysParse[i2].test(weekdayName)) { return i2; } } } function getSetDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); if (input != null) { input = parseWeekday(input, this.localeData()); return this.add(input - day, "d"); } else { return day; } } function getSetLocaleDayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; return input == null ? weekday : this.add(input - weekday, "d"); } function getSetISODayOfWeek(input) { if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { var weekday = parseIsoWeekday(input, this.localeData()); return this.day(this.day() % 7 ? weekday : weekday - 7); } else { return this.day() || 7; } } function weekdaysRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysStrictRegex; } else { return this._weekdaysRegex; } } else { if (!hasOwnProp(this, "_weekdaysRegex")) { this._weekdaysRegex = defaultWeekdaysRegex; } return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex; } } function weekdaysShortRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysShortStrictRegex; } else { return this._weekdaysShortRegex; } } else { if (!hasOwnProp(this, "_weekdaysShortRegex")) { this._weekdaysShortRegex = defaultWeekdaysShortRegex; } return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex; } } function weekdaysMinRegex(isStrict) { if (this._weekdaysParseExact) { if (!hasOwnProp(this, "_weekdaysRegex")) { computeWeekdaysParse.call(this); } if (isStrict) { return this._weekdaysMinStrictRegex; } else { return this._weekdaysMinRegex; } } else { if (!hasOwnProp(this, "_weekdaysMinRegex")) { this._weekdaysMinRegex = defaultWeekdaysMinRegex; } return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex; } } function computeWeekdaysParse() { function cmpLenRev(a2, b2) { return b2.length - a2.length; } var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i2, mom, minp, shortp, longp; for (i2 = 0; i2 < 7; i2++) { mom = createUTC([2e3, 1]).day(i2); minp = regexEscape2(this.weekdaysMin(mom, "")); shortp = regexEscape2(this.weekdaysShort(mom, "")); longp = regexEscape2(this.weekdays(mom, "")); minPieces.push(minp); shortPieces.push(shortp); longPieces.push(longp); mixedPieces.push(minp); mixedPieces.push(shortp); mixedPieces.push(longp); } minPieces.sort(cmpLenRev); shortPieces.sort(cmpLenRev); longPieces.sort(cmpLenRev); mixedPieces.sort(cmpLenRev); this._weekdaysRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._weekdaysShortRegex = this._weekdaysRegex; this._weekdaysMinRegex = this._weekdaysRegex; this._weekdaysStrictRegex = new RegExp( "^(" + longPieces.join("|") + ")", "i" ); this._weekdaysShortStrictRegex = new RegExp( "^(" + shortPieces.join("|") + ")", "i" ); this._weekdaysMinStrictRegex = new RegExp( "^(" + minPieces.join("|") + ")", "i" ); } function hFormat() { return this.hours() % 12 || 12; } function kFormat() { return this.hours() || 24; } addFormatToken("H", ["HH", 2], 0, "hour"); addFormatToken("h", ["hh", 2], 0, hFormat); addFormatToken("k", ["kk", 2], 0, kFormat); addFormatToken("hmm", 0, 0, function() { return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2); }); addFormatToken("hmmss", 0, 0, function() { return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); addFormatToken("Hmm", 0, 0, function() { return "" + this.hours() + zeroFill(this.minutes(), 2); }); addFormatToken("Hmmss", 0, 0, function() { return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2); }); function meridiem(token2, lowercase) { addFormatToken(token2, 0, 0, function() { return this.localeData().meridiem( this.hours(), this.minutes(), lowercase ); }); } meridiem("a", true); meridiem("A", false); addUnitAlias("hour", "h"); addUnitPriority("hour", 13); function matchMeridiem(isStrict, locale2) { return locale2._meridiemParse; } addRegexToken("a", matchMeridiem); addRegexToken("A", matchMeridiem); addRegexToken("H", match1to2); addRegexToken("h", match1to2); addRegexToken("k", match1to2); addRegexToken("HH", match1to2, match22); addRegexToken("hh", match1to2, match22); addRegexToken("kk", match1to2, match22); addRegexToken("hmm", match3to4); addRegexToken("hmmss", match5to6); addRegexToken("Hmm", match3to4); addRegexToken("Hmmss", match5to6); addParseToken(["H", "HH"], HOUR); addParseToken(["k", "kk"], function(input, array2, config) { var kInput = toInt(input); array2[HOUR] = kInput === 24 ? 0 : kInput; }); addParseToken(["a", "A"], function(input, array2, config) { config._isPm = config._locale.isPM(input); config._meridiem = input; }); addParseToken(["h", "hh"], function(input, array2, config) { array2[HOUR] = toInt(input); getParsingFlags(config).bigHour = true; }); addParseToken("hmm", function(input, array2, config) { var pos = input.length - 2; array2[HOUR] = toInt(input.substr(0, pos)); array2[MINUTE] = toInt(input.substr(pos)); getParsingFlags(config).bigHour = true; }); addParseToken("hmmss", function(input, array2, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array2[HOUR] = toInt(input.substr(0, pos1)); array2[MINUTE] = toInt(input.substr(pos1, 2)); array2[SECOND] = toInt(input.substr(pos2)); getParsingFlags(config).bigHour = true; }); addParseToken("Hmm", function(input, array2, config) { var pos = input.length - 2; array2[HOUR] = toInt(input.substr(0, pos)); array2[MINUTE] = toInt(input.substr(pos)); }); addParseToken("Hmmss", function(input, array2, config) { var pos1 = input.length - 4, pos2 = input.length - 2; array2[HOUR] = toInt(input.substr(0, pos1)); array2[MINUTE] = toInt(input.substr(pos1, 2)); array2[SECOND] = toInt(input.substr(pos2)); }); function localeIsPM(input) { return (input + "").toLowerCase().charAt(0) === "p"; } var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet("Hours", true); function localeMeridiem(hours2, minutes2, isLower) { if (hours2 > 11) { return isLower ? "pm" : "PM"; } else { return isLower ? "am" : "AM"; } } var baseConfig = { calendar: defaultCalendar, longDateFormat: defaultLongDateFormat, invalidDate: defaultInvalidDate, ordinal: defaultOrdinal, dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, relativeTime: defaultRelativeTime, months: defaultLocaleMonths, monthsShort: defaultLocaleMonthsShort, week: defaultLocaleWeek, weekdays: defaultLocaleWeekdays, weekdaysMin: defaultLocaleWeekdaysMin, weekdaysShort: defaultLocaleWeekdaysShort, meridiemParse: defaultLocaleMeridiemParse }; var locales = {}, localeFamilies = {}, globalLocale; function commonPrefix(arr1, arr2) { var i2, minl = Math.min(arr1.length, arr2.length); for (i2 = 0; i2 < minl; i2 += 1) { if (arr1[i2] !== arr2[i2]) { return i2; } } return minl; } function normalizeLocale(key) { return key ? key.toLowerCase().replace("_", "-") : key; } function chooseLocale(names) { var i2 = 0, j2, next2, locale2, split; while (i2 < names.length) { split = normalizeLocale(names[i2]).split("-"); j2 = split.length; next2 = normalizeLocale(names[i2 + 1]); next2 = next2 ? next2.split("-") : null; while (j2 > 0) { locale2 = loadLocale(split.slice(0, j2).join("-")); if (locale2) { return locale2; } if (next2 && next2.length >= j2 && commonPrefix(split, next2) >= j2 - 1) { break; } j2--; } i2++; } return globalLocale; } function isLocaleNameSane(name) { return name.match("^[^/\\\\]*$") != null; } function loadLocale(name) { var oldLocale = null, aliasedRequire; if (locales[name] === void 0 && typeof module2 !== "undefined" && module2 && module2.exports && isLocaleNameSane(name)) { try { oldLocale = globalLocale._abbr; aliasedRequire = require; aliasedRequire("./locale/" + name); getSetGlobalLocale(oldLocale); } catch (e) { locales[name] = null; } } return locales[name]; } function getSetGlobalLocale(key, values) { var data; if (key) { if (isUndefined(values)) { data = getLocale(key); } else { data = defineLocale(key, values); } if (data) { globalLocale = data; } else { if (typeof console !== "undefined" && console.warn) { console.warn( "Locale " + key + " not found. Did you forget to load it?" ); } } } return globalLocale._abbr; } function defineLocale(name, config) { if (config !== null) { var locale2, parentConfig = baseConfig; config.abbr = name; if (locales[name] != null) { deprecateSimple( "defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info." ); parentConfig = locales[name]._config; } else if (config.parentLocale != null) { if (locales[config.parentLocale] != null) { parentConfig = locales[config.parentLocale]._config; } else { locale2 = loadLocale(config.parentLocale); if (locale2 != null) { parentConfig = locale2._config; } else { if (!localeFamilies[config.parentLocale]) { localeFamilies[config.parentLocale] = []; } localeFamilies[config.parentLocale].push({ name, config }); return null; } } } locales[name] = new Locale(mergeConfigs(parentConfig, config)); if (localeFamilies[name]) { localeFamilies[name].forEach(function(x2) { defineLocale(x2.name, x2.config); }); } getSetGlobalLocale(name); return locales[name]; } else { delete locales[name]; return null; } } function updateLocale(name, config) { if (config != null) { var locale2, tmpLocale, parentConfig = baseConfig; if (locales[name] != null && locales[name].parentLocale != null) { locales[name].set(mergeConfigs(locales[name]._config, config)); } else { tmpLocale = loadLocale(name); if (tmpLocale != null) { parentConfig = tmpLocale._config; } config = mergeConfigs(parentConfig, config); if (tmpLocale == null) { config.abbr = name; } locale2 = new Locale(config); locale2.parentLocale = locales[name]; locales[name] = locale2; } getSetGlobalLocale(name); } else { if (locales[name] != null) { if (locales[name].parentLocale != null) { locales[name] = locales[name].parentLocale; if (name === getSetGlobalLocale()) { getSetGlobalLocale(name); } } else if (locales[name] != null) { delete locales[name]; } } } return locales[name]; } function getLocale(key) { var locale2; if (key && key._locale && key._locale._abbr) { key = key._locale._abbr; } if (!key) { return globalLocale; } if (!isArray(key)) { locale2 = loadLocale(key); if (locale2) { return locale2; } key = [key]; } return chooseLocale(key); } function listLocales() { return keys(locales); } function checkOverflow(m) { var overflow, a2 = m._a; if (a2 && getParsingFlags(m).overflow === -2) { overflow = a2[MONTH] < 0 || a2[MONTH] > 11 ? MONTH : a2[DATE] < 1 || a2[DATE] > daysInMonth(a2[YEAR], a2[MONTH]) ? DATE : a2[HOUR] < 0 || a2[HOUR] > 24 || a2[HOUR] === 24 && (a2[MINUTE] !== 0 || a2[SECOND] !== 0 || a2[MILLISECOND] !== 0) ? HOUR : a2[MINUTE] < 0 || a2[MINUTE] > 59 ? MINUTE : a2[SECOND] < 0 || a2[SECOND] > 59 ? SECOND : a2[MILLISECOND] < 0 || a2[MILLISECOND] > 999 ? MILLISECOND : -1; if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } if (getParsingFlags(m)._overflowWeeks && overflow === -1) { overflow = WEEK; } if (getParsingFlags(m)._overflowWeekday && overflow === -1) { overflow = WEEKDAY; } getParsingFlags(m).overflow = overflow; } return m; } var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [ ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, false], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, false], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, false], ["YYYYDDD", /\d{7}/], ["YYYYMM", /\d{6}/, false], ["YYYY", /\d{4}/, false] ], isoTimes = [ ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/] ], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = { UT: 0, GMT: 0, EDT: -4 * 60, EST: -5 * 60, CDT: -5 * 60, CST: -6 * 60, MDT: -6 * 60, MST: -7 * 60, PDT: -7 * 60, PST: -8 * 60 }; function configFromISO(config) { var i2, l2, string2 = config._i, match7 = extendedIsoRegex.exec(string2) || basicIsoRegex.exec(string2), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length; if (match7) { getParsingFlags(config).iso = true; for (i2 = 0, l2 = isoDatesLen; i2 < l2; i2++) { if (isoDates[i2][1].exec(match7[1])) { dateFormat = isoDates[i2][0]; allowTime = isoDates[i2][2] !== false; break; } } if (dateFormat == null) { config._isValid = false; return; } if (match7[3]) { for (i2 = 0, l2 = isoTimesLen; i2 < l2; i2++) { if (isoTimes[i2][1].exec(match7[3])) { timeFormat = (match7[2] || " ") + isoTimes[i2][0]; break; } } if (timeFormat == null) { config._isValid = false; return; } } if (!allowTime && timeFormat != null) { config._isValid = false; return; } if (match7[4]) { if (tzRegex.exec(match7[4])) { tzFormat = "Z"; } else { config._isValid = false; return; } } config._f = dateFormat + (timeFormat || "") + (tzFormat || ""); configFromStringAndFormat(config); } else { config._isValid = false; } } function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { var result = [ untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10) ]; if (secondStr) { result.push(parseInt(secondStr, 10)); } return result; } function untruncateYear(yearStr) { var year = parseInt(yearStr, 10); if (year <= 49) { return 2e3 + year; } else if (year <= 999) { return 1900 + year; } return year; } function preprocessRFC2822(s2) { return s2.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, ""); } function checkWeekday(weekdayStr, parsedInput, config) { if (weekdayStr) { var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date( parsedInput[0], parsedInput[1], parsedInput[2] ).getDay(); if (weekdayProvided !== weekdayActual) { getParsingFlags(config).weekdayMismatch = true; config._isValid = false; return false; } } return true; } function calculateOffset(obsOffset, militaryOffset, numOffset) { if (obsOffset) { return obsOffsets[obsOffset]; } else if (militaryOffset) { return 0; } else { var hm = parseInt(numOffset, 10), m = hm % 100, h2 = (hm - m) / 100; return h2 * 60 + m; } } function configFromRFC2822(config) { var match7 = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray; if (match7) { parsedArray = extractFromRFC2822Strings( match7[4], match7[3], match7[2], match7[5], match7[6], match7[7] ); if (!checkWeekday(match7[1], parsedArray, config)) { return; } config._a = parsedArray; config._tzm = calculateOffset(match7[8], match7[9], match7[10]); config._d = createUTCDate.apply(null, config._a); config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); getParsingFlags(config).rfc2822 = true; } else { config._isValid = false; } } function configFromString(config) { var matched = aspNetJsonRegex.exec(config._i); if (matched !== null) { config._d = new Date(+matched[1]); return; } configFromISO(config); if (config._isValid === false) { delete config._isValid; } else { return; } configFromRFC2822(config); if (config._isValid === false) { delete config._isValid; } else { return; } if (config._strict) { config._isValid = false; } else { hooks.createFromInputFallback(config); } } hooks.createFromInputFallback = deprecate( "value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function(config) { config._d = new Date(config._i + (config._useUTC ? " UTC" : "")); } ); function defaults2(a2, b2, c2) { if (a2 != null) { return a2; } if (b2 != null) { return b2; } return c2; } function currentDateArray(config) { var nowValue = new Date(hooks.now()); if (config._useUTC) { return [ nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate() ]; } return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; } function configFromArray(config) { var i2, date, input = [], currentDate, expectedWeekday, yearToUse; if (config._d) { return; } currentDate = currentDateArray(config); if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { dayOfYearFromWeekInfo(config); } if (config._dayOfYear != null) { yearToUse = defaults2(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } for (i2 = 0; i2 < 3 && config._a[i2] == null; ++i2) { config._a[i2] = input[i2] = currentDate[i2]; } for (; i2 < 7; i2++) { config._a[i2] = input[i2] = config._a[i2] == null ? i2 === 2 ? 1 : 0 : config._a[i2]; } if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) { config._nextDay = true; config._a[HOUR] = 0; } config._d = (config._useUTC ? createUTCDate : createDate).apply( null, input ); expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); if (config._tzm != null) { config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); } if (config._nextDay) { config._a[HOUR] = 24; } if (config._w && typeof config._w.d !== "undefined" && config._w.d !== expectedWeekday) { getParsingFlags(config).weekdayMismatch = true; } } function dayOfYearFromWeekInfo(config) { var w2, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; w2 = config._w; if (w2.GG != null || w2.W != null || w2.E != null) { dow = 1; doy = 4; weekYear = defaults2( w2.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year ); week = defaults2(w2.W, 1); weekday = defaults2(w2.E, 1); if (weekday < 1 || weekday > 7) { weekdayOverflow = true; } } else { dow = config._locale._week.dow; doy = config._locale._week.doy; curWeek = weekOfYear(createLocal(), dow, doy); weekYear = defaults2(w2.gg, config._a[YEAR], curWeek.year); week = defaults2(w2.w, curWeek.week); if (w2.d != null) { weekday = w2.d; if (weekday < 0 || weekday > 6) { weekdayOverflow = true; } } else if (w2.e != null) { weekday = w2.e + dow; if (w2.e < 0 || w2.e > 6) { weekdayOverflow = true; } } else { weekday = dow; } } if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { getParsingFlags(config)._overflowWeeks = true; } else if (weekdayOverflow != null) { getParsingFlags(config)._overflowWeekday = true; } else { temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); config._a[YEAR] = temp.year; config._dayOfYear = temp.dayOfYear; } } hooks.ISO_8601 = function() { }; hooks.RFC_2822 = function() { }; function configFromStringAndFormat(config) { if (config._f === hooks.ISO_8601) { configFromISO(config); return; } if (config._f === hooks.RFC_2822) { configFromRFC2822(config); return; } config._a = []; getParsingFlags(config).empty = true; var string2 = "" + config._i, i2, parsedInput, tokens2, token2, skipped, stringLength = string2.length, totalParsedInputLength = 0, era, tokenLen; tokens2 = expandFormat(config._f, config._locale).match(formattingTokens) || []; tokenLen = tokens2.length; for (i2 = 0; i2 < tokenLen; i2++) { token2 = tokens2[i2]; parsedInput = (string2.match(getParseRegexForToken(token2, config)) || [])[0]; if (parsedInput) { skipped = string2.substr(0, string2.indexOf(parsedInput)); if (skipped.length > 0) { getParsingFlags(config).unusedInput.push(skipped); } string2 = string2.slice( string2.indexOf(parsedInput) + parsedInput.length ); totalParsedInputLength += parsedInput.length; } if (formatTokenFunctions[token2]) { if (parsedInput) { getParsingFlags(config).empty = false; } else { getParsingFlags(config).unusedTokens.push(token2); } addTimeToArrayFromToken(token2, parsedInput, config); } else if (config._strict && !parsedInput) { getParsingFlags(config).unusedTokens.push(token2); } } getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string2.length > 0) { getParsingFlags(config).unusedInput.push(string2); } if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) { getParsingFlags(config).bigHour = void 0; } getParsingFlags(config).parsedDateParts = config._a.slice(0); getParsingFlags(config).meridiem = config._meridiem; config._a[HOUR] = meridiemFixWrap( config._locale, config._a[HOUR], config._meridiem ); era = getParsingFlags(config).era; if (era !== null) { config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); } configFromArray(config); checkOverflow(config); } function meridiemFixWrap(locale2, hour, meridiem2) { var isPm; if (meridiem2 == null) { return hour; } if (locale2.meridiemHour != null) { return locale2.meridiemHour(hour, meridiem2); } else if (locale2.isPM != null) { isPm = locale2.isPM(meridiem2); if (isPm && hour < 12) { hour += 12; } if (!isPm && hour === 12) { hour = 0; } return hour; } else { return hour; } } function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i2, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length; if (configfLen === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i2 = 0; i2 < configfLen; i2++) { currentScore = 0; validFormatFound = false; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i2]; configFromStringAndFormat(tempConfig); if (isValid(tempConfig)) { validFormatFound = true; } currentScore += getParsingFlags(tempConfig).charsLeftOver; currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (!bestFormatIsValid) { if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) { scoreToBeat = currentScore; bestMoment = tempConfig; if (validFormatFound) { bestFormatIsValid = true; } } } else { if (currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } } extend4(config, bestMoment || tempConfig); } function configFromObject(config) { if (config._d) { return; } var i2 = normalizeObjectUnits(config._i), dayOrDate = i2.day === void 0 ? i2.date : i2.day; config._a = map8( [i2.year, i2.month, dayOrDate, i2.hour, i2.minute, i2.second, i2.millisecond], function(obj) { return obj && parseInt(obj, 10); } ); configFromArray(config); } function createFromConfig(config) { var res = new Moment(checkOverflow(prepareConfig(config))); if (res._nextDay) { res.add(1, "d"); res._nextDay = void 0; } return res; } function prepareConfig(config) { var input = config._i, format3 = config._f; config._locale = config._locale || getLocale(config._l); if (input === null || format3 === void 0 && input === "") { return createInvalid({ nullInput: true }); } if (typeof input === "string") { config._i = input = config._locale.preparse(input); } if (isMoment(input)) { return new Moment(checkOverflow(input)); } else if (isDate3(input)) { config._d = input; } else if (isArray(format3)) { configFromStringAndArray(config); } else if (format3) { configFromStringAndFormat(config); } else { configFromInput(config); } if (!isValid(config)) { config._d = null; } return config; } function configFromInput(config) { var input = config._i; if (isUndefined(input)) { config._d = new Date(hooks.now()); } else if (isDate3(input)) { config._d = new Date(input.valueOf()); } else if (typeof input === "string") { configFromString(config); } else if (isArray(input)) { config._a = map8(input.slice(0), function(obj) { return parseInt(obj, 10); }); configFromArray(config); } else if (isObject(input)) { configFromObject(config); } else if (isNumber2(input)) { config._d = new Date(input); } else { hooks.createFromInputFallback(config); } } function createLocalOrUTC(input, format3, locale2, strict, isUTC) { var c2 = {}; if (format3 === true || format3 === false) { strict = format3; format3 = void 0; } if (locale2 === true || locale2 === false) { strict = locale2; locale2 = void 0; } if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) { input = void 0; } c2._isAMomentObject = true; c2._useUTC = c2._isUTC = isUTC; c2._l = locale2; c2._i = input; c2._f = format3; c2._strict = strict; return createFromConfig(c2); } function createLocal(input, format3, locale2, strict) { return createLocalOrUTC(input, format3, locale2, strict, false); } var prototypeMin = deprecate( "moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function() { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other < this ? this : other; } else { return createInvalid(); } } ), prototypeMax = deprecate( "moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function() { var other = createLocal.apply(null, arguments); if (this.isValid() && other.isValid()) { return other > this ? this : other; } else { return createInvalid(); } } ); function pickBy(fn3, moments) { var res, i2; if (moments.length === 1 && isArray(moments[0])) { moments = moments[0]; } if (!moments.length) { return createLocal(); } res = moments[0]; for (i2 = 1; i2 < moments.length; ++i2) { if (!moments[i2].isValid() || moments[i2][fn3](res)) { res = moments[i2]; } } return res; } function min3() { var args = [].slice.call(arguments, 0); return pickBy("isBefore", args); } function max3() { var args = [].slice.call(arguments, 0); return pickBy("isAfter", args); } var now2 = function() { return Date.now ? Date.now() : +new Date(); }; var ordering = [ "year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond" ]; function isDurationValid(m) { var key, unitHasDecimal = false, i2, orderLen = ordering.length; for (key in m) { if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { return false; } } for (i2 = 0; i2 < orderLen; ++i2) { if (m[ordering[i2]]) { if (unitHasDecimal) { return false; } if (parseFloat(m[ordering[i2]]) !== toInt(m[ordering[i2]])) { unitHasDecimal = true; } } } return true; } function isValid$1() { return this._isValid; } function createInvalid$1() { return createDuration(NaN); } function Duration(duration) { var normalizedInput = normalizeObjectUnits(duration), years2 = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months2 = normalizedInput.month || 0, weeks2 = normalizedInput.week || normalizedInput.isoWeek || 0, days2 = normalizedInput.day || 0, hours2 = normalizedInput.hour || 0, minutes2 = normalizedInput.minute || 0, seconds2 = normalizedInput.second || 0, milliseconds2 = normalizedInput.millisecond || 0; this._isValid = isDurationValid(normalizedInput); this._milliseconds = +milliseconds2 + seconds2 * 1e3 + minutes2 * 6e4 + hours2 * 1e3 * 60 * 60; this._days = +days2 + weeks2 * 7; this._months = +months2 + quarters * 3 + years2 * 12; this._data = {}; this._locale = getLocale(); this._bubble(); } function isDuration(obj) { return obj instanceof Duration; } function absRound(number) { if (number < 0) { return Math.round(-1 * number) * -1; } else { return Math.round(number); } } function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i2; for (i2 = 0; i2 < len; i2++) { if (dontConvert && array1[i2] !== array2[i2] || !dontConvert && toInt(array1[i2]) !== toInt(array2[i2])) { diffs++; } } return diffs + lengthDiff; } function offset2(token2, separator) { addFormatToken(token2, 0, 0, function() { var offset3 = this.utcOffset(), sign2 = "+"; if (offset3 < 0) { offset3 = -offset3; sign2 = "-"; } return sign2 + zeroFill(~~(offset3 / 60), 2) + separator + zeroFill(~~offset3 % 60, 2); }); } offset2("Z", ":"); offset2("ZZ", ""); addRegexToken("Z", matchShortOffset); addRegexToken("ZZ", matchShortOffset); addParseToken(["Z", "ZZ"], function(input, array2, config) { config._useUTC = true; config._tzm = offsetFromString(matchShortOffset, input); }); var chunkOffset = /([\+\-]|\d\d)/gi; function offsetFromString(matcher, string2) { var matches2 = (string2 || "").match(matcher), chunk, parts, minutes2; if (matches2 === null) { return null; } chunk = matches2[matches2.length - 1] || []; parts = (chunk + "").match(chunkOffset) || ["-", 0, 0]; minutes2 = +(parts[1] * 60) + toInt(parts[2]); return minutes2 === 0 ? 0 : parts[0] === "+" ? minutes2 : -minutes2; } function cloneWithOffset(input, model) { var res, diff2; if (model._isUTC) { res = model.clone(); diff2 = (isMoment(input) || isDate3(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); res._d.setTime(res._d.valueOf() + diff2); hooks.updateOffset(res, false); return res; } else { return createLocal(input).local(); } } function getDateOffset(m) { return -Math.round(m._d.getTimezoneOffset()); } hooks.updateOffset = function() { }; function getSetOffset(input, keepLocalTime, keepMinutes) { var offset3 = this._offset || 0, localAdjust; if (!this.isValid()) { return input != null ? this : NaN; } if (input != null) { if (typeof input === "string") { input = offsetFromString(matchShortOffset, input); if (input === null) { return this; } } else if (Math.abs(input) < 16 && !keepMinutes) { input = input * 60; } if (!this._isUTC && keepLocalTime) { localAdjust = getDateOffset(this); } this._offset = input; this._isUTC = true; if (localAdjust != null) { this.add(localAdjust, "m"); } if (offset3 !== input) { if (!keepLocalTime || this._changeInProgress) { addSubtract( this, createDuration(input - offset3, "m"), 1, false ); } else if (!this._changeInProgress) { this._changeInProgress = true; hooks.updateOffset(this, true); this._changeInProgress = null; } } return this; } else { return this._isUTC ? offset3 : getDateOffset(this); } } function getSetZone(input, keepLocalTime) { if (input != null) { if (typeof input !== "string") { input = -input; } this.utcOffset(input, keepLocalTime); return this; } else { return -this.utcOffset(); } } function setOffsetToUTC(keepLocalTime) { return this.utcOffset(0, keepLocalTime); } function setOffsetToLocal(keepLocalTime) { if (this._isUTC) { this.utcOffset(0, keepLocalTime); this._isUTC = false; if (keepLocalTime) { this.subtract(getDateOffset(this), "m"); } } return this; } function setOffsetToParsedOffset() { if (this._tzm != null) { this.utcOffset(this._tzm, false, true); } else if (typeof this._i === "string") { var tZone = offsetFromString(matchOffset, this._i); if (tZone != null) { this.utcOffset(tZone); } else { this.utcOffset(0, true); } } return this; } function hasAlignedHourOffset(input) { if (!this.isValid()) { return false; } input = input ? createLocal(input).utcOffset() : 0; return (this.utcOffset() - input) % 60 === 0; } function isDaylightSavingTime() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } function isDaylightSavingTimeShifted() { if (!isUndefined(this._isDSTShifted)) { return this._isDSTShifted; } var c2 = {}, other; copyConfig(c2, this); c2 = prepareConfig(c2); if (c2._a) { other = c2._isUTC ? createUTC(c2._a) : createLocal(c2._a); this._isDSTShifted = this.isValid() && compareArrays(c2._a, other.toArray()) > 0; } else { this._isDSTShifted = false; } return this._isDSTShifted; } function isLocal() { return this.isValid() ? !this._isUTC : false; } function isUtcOffset() { return this.isValid() ? this._isUTC : false; } function isUtc() { return this.isValid() ? this._isUTC && this._offset === 0 : false; } var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; function createDuration(input, key) { var duration = input, match7 = null, sign2, ret, diffRes; if (isDuration(input)) { duration = { ms: input._milliseconds, d: input._days, M: input._months }; } else if (isNumber2(input) || !isNaN(+input)) { duration = {}; if (key) { duration[key] = +input; } else { duration.milliseconds = +input; } } else if (match7 = aspNetRegex.exec(input)) { sign2 = match7[1] === "-" ? -1 : 1; duration = { y: 0, d: toInt(match7[DATE]) * sign2, h: toInt(match7[HOUR]) * sign2, m: toInt(match7[MINUTE]) * sign2, s: toInt(match7[SECOND]) * sign2, ms: toInt(absRound(match7[MILLISECOND] * 1e3)) * sign2 }; } else if (match7 = isoRegex.exec(input)) { sign2 = match7[1] === "-" ? -1 : 1; duration = { y: parseIso(match7[2], sign2), M: parseIso(match7[3], sign2), w: parseIso(match7[4], sign2), d: parseIso(match7[5], sign2), h: parseIso(match7[6], sign2), m: parseIso(match7[7], sign2), s: parseIso(match7[8], sign2) }; } else if (duration == null) { duration = {}; } else if (typeof duration === "object" && ("from" in duration || "to" in duration)) { diffRes = momentsDifference( createLocal(duration.from), createLocal(duration.to) ); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } ret = new Duration(duration); if (isDuration(input) && hasOwnProp(input, "_locale")) { ret._locale = input._locale; } if (isDuration(input) && hasOwnProp(input, "_isValid")) { ret._isValid = input._isValid; } return ret; } createDuration.fn = Duration.prototype; createDuration.invalid = createInvalid$1; function parseIso(inp, sign2) { var res = inp && parseFloat(inp.replace(",", ".")); return (isNaN(res) ? 0 : res) * sign2; } function positiveMomentsDifference(base, other) { var res = {}; res.months = other.month() - base.month() + (other.year() - base.year()) * 12; if (base.clone().add(res.months, "M").isAfter(other)) { --res.months; } res.milliseconds = +other - +base.clone().add(res.months, "M"); return res; } function momentsDifference(base, other) { var res; if (!(base.isValid() && other.isValid())) { return { milliseconds: 0, months: 0 }; } other = cloneWithOffset(other, base); if (base.isBefore(other)) { res = positiveMomentsDifference(base, other); } else { res = positiveMomentsDifference(other, base); res.milliseconds = -res.milliseconds; res.months = -res.months; } return res; } function createAdder(direction, name) { return function(val, period) { var dur, tmp; if (period !== null && !isNaN(+period)) { deprecateSimple( name, "moment()." + name + "(period, number) is deprecated. Please use moment()." + name + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info." ); tmp = val; val = period; period = tmp; } dur = createDuration(val, period); addSubtract(this, dur, direction); return this; }; } function addSubtract(mom, duration, isAdding, updateOffset) { var milliseconds2 = duration._milliseconds, days2 = absRound(duration._days), months2 = absRound(duration._months); if (!mom.isValid()) { return; } updateOffset = updateOffset == null ? true : updateOffset; if (months2) { setMonth(mom, get2(mom, "Month") + months2 * isAdding); } if (days2) { set$1(mom, "Date", get2(mom, "Date") + days2 * isAdding); } if (milliseconds2) { mom._d.setTime(mom._d.valueOf() + milliseconds2 * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days2 || months2); } } var add = createAdder(1, "add"), subtract = createAdder(-1, "subtract"); function isString2(input) { return typeof input === "string" || input instanceof String; } function isMomentInput(input) { return isMoment(input) || isDate3(input) || isString2(input) || isNumber2(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === void 0; } function isMomentInputObject(input) { var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = [ "years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms" ], i2, property, propertyLen = properties.length; for (i2 = 0; i2 < propertyLen; i2 += 1) { property = properties[i2]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function isNumberOrStringArray(input) { var arrayTest = isArray(input), dataTypeTest = false; if (arrayTest) { dataTypeTest = input.filter(function(item) { return !isNumber2(item) && isString2(input); }).length === 0; } return arrayTest && dataTypeTest; } function isCalendarSpec(input) { var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = [ "sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse" ], i2, property; for (i2 = 0; i2 < properties.length; i2 += 1) { property = properties[i2]; propertyTest = propertyTest || hasOwnProp(input, property); } return objectTest && propertyTest; } function getCalendarFormat(myMoment, now3) { var diff2 = myMoment.diff(now3, "days", true); return diff2 < -6 ? "sameElse" : diff2 < -1 ? "lastWeek" : diff2 < 0 ? "lastDay" : diff2 < 1 ? "sameDay" : diff2 < 2 ? "nextDay" : diff2 < 7 ? "nextWeek" : "sameElse"; } function calendar$1(time, formats) { if (arguments.length === 1) { if (!arguments[0]) { time = void 0; formats = void 0; } else if (isMomentInput(arguments[0])) { time = arguments[0]; formats = void 0; } else if (isCalendarSpec(arguments[0])) { formats = arguments[0]; time = void 0; } } var now3 = time || createLocal(), sod = cloneWithOffset(now3, this).startOf("day"), format3 = hooks.calendarFormat(this, sod) || "sameElse", output2 = formats && (isFunction(formats[format3]) ? formats[format3].call(this, now3) : formats[format3]); return this.format( output2 || this.localeData().calendar(format3, this, createLocal(now3)) ); } function clone2() { return new Moment(this); } function isAfter(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() > localInput.valueOf(); } else { return localInput.valueOf() < this.clone().startOf(units).valueOf(); } } function isBefore(input, units) { var localInput = isMoment(input) ? input : createLocal(input); if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() < localInput.valueOf(); } else { return this.clone().endOf(units).valueOf() < localInput.valueOf(); } } function isBetween(from2, to2, units, inclusivity) { var localFrom = isMoment(from2) ? from2 : createLocal(from2), localTo = isMoment(to2) ? to2 : createLocal(to2); if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { return false; } inclusivity = inclusivity || "()"; return (inclusivity[0] === "(" ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ")" ? this.isBefore(localTo, units) : !this.isAfter(localTo, units)); } function isSame(input, units) { var localInput = isMoment(input) ? input : createLocal(input), inputMs; if (!(this.isValid() && localInput.isValid())) { return false; } units = normalizeUnits(units) || "millisecond"; if (units === "millisecond") { return this.valueOf() === localInput.valueOf(); } else { inputMs = localInput.valueOf(); return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); } } function isSameOrAfter(input, units) { return this.isSame(input, units) || this.isAfter(input, units); } function isSameOrBefore(input, units) { return this.isSame(input, units) || this.isBefore(input, units); } function diff(input, units, asFloat) { var that, zoneDelta, output2; if (!this.isValid()) { return NaN; } that = cloneWithOffset(input, this); if (!that.isValid()) { return NaN; } zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; units = normalizeUnits(units); switch (units) { case "year": output2 = monthDiff(this, that) / 12; break; case "month": output2 = monthDiff(this, that); break; case "quarter": output2 = monthDiff(this, that) / 3; break; case "second": output2 = (this - that) / 1e3; break; case "minute": output2 = (this - that) / 6e4; break; case "hour": output2 = (this - that) / 36e5; break; case "day": output2 = (this - that - zoneDelta) / 864e5; break; case "week": output2 = (this - that - zoneDelta) / 6048e5; break; default: output2 = this - that; } return asFloat ? output2 : absFloor(output2); } function monthDiff(a2, b2) { if (a2.date() < b2.date()) { return -monthDiff(b2, a2); } var wholeMonthDiff = (b2.year() - a2.year()) * 12 + (b2.month() - a2.month()), anchor = a2.clone().add(wholeMonthDiff, "months"), anchor2, adjust; if (b2 - anchor < 0) { anchor2 = a2.clone().add(wholeMonthDiff - 1, "months"); adjust = (b2 - anchor) / (anchor - anchor2); } else { anchor2 = a2.clone().add(wholeMonthDiff + 1, "months"); adjust = (b2 - anchor) / (anchor2 - anchor); } return -(wholeMonthDiff + adjust) || 0; } hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ"; hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; function toString2() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); } function toISOString(keepOffset) { if (!this.isValid()) { return null; } var utc = keepOffset !== true, m = utc ? this.clone().utc() : this; if (m.year() < 0 || m.year() > 9999) { return formatMoment( m, utc ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ" ); } if (isFunction(Date.prototype.toISOString)) { if (utc) { return this.toDate().toISOString(); } else { return new Date(this.valueOf() + this.utcOffset() * 60 * 1e3).toISOString().replace("Z", formatMoment(m, "Z")); } } return formatMoment( m, utc ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ" ); } function inspect() { if (!this.isValid()) { return "moment.invalid(/* " + this._i + " */)"; } var func7 = "moment", zone = "", prefix, year, datetime, suffix; if (!this.isLocal()) { func7 = this.utcOffset() === 0 ? "moment.utc" : "moment.parseZone"; zone = "Z"; } prefix = "[" + func7 + '("]'; year = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY"; datetime = "-MM-DD[T]HH:mm:ss.SSS"; suffix = zone + '[")]'; return this.format(prefix + year + datetime + suffix); } function format2(inputString) { if (!inputString) { inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; } var output2 = formatMoment(this, inputString); return this.localeData().postformat(output2); } function from(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ to: this, from: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function fromNow(withoutSuffix) { return this.from(createLocal(), withoutSuffix); } function to(time, withoutSuffix) { if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) { return createDuration({ from: this, to: time }).locale(this.locale()).humanize(!withoutSuffix); } else { return this.localeData().invalidDate(); } } function toNow(withoutSuffix) { return this.to(createLocal(), withoutSuffix); } function locale(key) { var newLocaleData; if (key === void 0) { return this._locale._abbr; } else { newLocaleData = getLocale(key); if (newLocaleData != null) { this._locale = newLocaleData; } return this; } } var lang = deprecate( "moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function(key) { if (key === void 0) { return this.localeData(); } else { return this.locale(key); } } ); function localeData() { return this._locale; } var MS_PER_SECOND = 1e3, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; function mod$1(dividend, divisor) { return (dividend % divisor + divisor) % divisor; } function localStartOfDate(y2, m, d2) { if (y2 < 100 && y2 >= 0) { return new Date(y2 + 400, m, d2) - MS_PER_400_YEARS; } else { return new Date(y2, m, d2).valueOf(); } } function utcStartOfDate(y2, m, d2) { if (y2 < 100 && y2 >= 0) { return Date.UTC(y2 + 400, m, d2) - MS_PER_400_YEARS; } else { return Date.UTC(y2, m, d2); } } function startOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === void 0 || units === "millisecond" || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case "year": time = startOfDate(this.year(), 0, 1); break; case "quarter": time = startOfDate( this.year(), this.month() - this.month() % 3, 1 ); break; case "month": time = startOfDate(this.year(), this.month(), 1); break; case "week": time = startOfDate( this.year(), this.month(), this.date() - this.weekday() ); break; case "isoWeek": time = startOfDate( this.year(), this.month(), this.date() - (this.isoWeekday() - 1) ); break; case "day": case "date": time = startOfDate(this.year(), this.month(), this.date()); break; case "hour": time = this._d.valueOf(); time -= mod$1( time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR ); break; case "minute": time = this._d.valueOf(); time -= mod$1(time, MS_PER_MINUTE); break; case "second": time = this._d.valueOf(); time -= mod$1(time, MS_PER_SECOND); break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function endOf(units) { var time, startOfDate; units = normalizeUnits(units); if (units === void 0 || units === "millisecond" || !this.isValid()) { return this; } startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; switch (units) { case "year": time = startOfDate(this.year() + 1, 0, 1) - 1; break; case "quarter": time = startOfDate( this.year(), this.month() - this.month() % 3 + 3, 1 ) - 1; break; case "month": time = startOfDate(this.year(), this.month() + 1, 1) - 1; break; case "week": time = startOfDate( this.year(), this.month(), this.date() - this.weekday() + 7 ) - 1; break; case "isoWeek": time = startOfDate( this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7 ) - 1; break; case "day": case "date": time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; break; case "hour": time = this._d.valueOf(); time += MS_PER_HOUR - mod$1( time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR ) - 1; break; case "minute": time = this._d.valueOf(); time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; break; case "second": time = this._d.valueOf(); time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; break; } this._d.setTime(time); hooks.updateOffset(this, true); return this; } function valueOf() { return this._d.valueOf() - (this._offset || 0) * 6e4; } function unix() { return Math.floor(this.valueOf() / 1e3); } function toDate() { return new Date(this.valueOf()); } function toArray2() { var m = this; return [ m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond() ]; } function toObject() { var m = this; return { years: m.year(), months: m.month(), date: m.date(), hours: m.hours(), minutes: m.minutes(), seconds: m.seconds(), milliseconds: m.milliseconds() }; } function toJSON() { return this.isValid() ? this.toISOString() : null; } function isValid$2() { return isValid(this); } function parsingFlags() { return extend4({}, getParsingFlags(this)); } function invalidAt() { return getParsingFlags(this).overflow; } function creationData() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } addFormatToken("N", 0, 0, "eraAbbr"); addFormatToken("NN", 0, 0, "eraAbbr"); addFormatToken("NNN", 0, 0, "eraAbbr"); addFormatToken("NNNN", 0, 0, "eraName"); addFormatToken("NNNNN", 0, 0, "eraNarrow"); addFormatToken("y", ["y", 1], "yo", "eraYear"); addFormatToken("y", ["yy", 2], 0, "eraYear"); addFormatToken("y", ["yyy", 3], 0, "eraYear"); addFormatToken("y", ["yyyy", 4], 0, "eraYear"); addRegexToken("N", matchEraAbbr); addRegexToken("NN", matchEraAbbr); addRegexToken("NNN", matchEraAbbr); addRegexToken("NNNN", matchEraName); addRegexToken("NNNNN", matchEraNarrow); addParseToken( ["N", "NN", "NNN", "NNNN", "NNNNN"], function(input, array2, config, token2) { var era = config._locale.erasParse(input, token2, config._strict); if (era) { getParsingFlags(config).era = era; } else { getParsingFlags(config).invalidEra = input; } } ); addRegexToken("y", matchUnsigned); addRegexToken("yy", matchUnsigned); addRegexToken("yyy", matchUnsigned); addRegexToken("yyyy", matchUnsigned); addRegexToken("yo", matchEraYearOrdinal); addParseToken(["y", "yy", "yyy", "yyyy"], YEAR); addParseToken(["yo"], function(input, array2, config, token2) { var match7; if (config._locale._eraYearOrdinalRegex) { match7 = input.match(config._locale._eraYearOrdinalRegex); } if (config._locale.eraYearOrdinalParse) { array2[YEAR] = config._locale.eraYearOrdinalParse(input, match7); } else { array2[YEAR] = parseInt(input, 10); } }); function localeEras(m, format3) { var i2, l2, date, eras = this._eras || getLocale("en")._eras; for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { switch (typeof eras[i2].since) { case "string": date = hooks(eras[i2].since).startOf("day"); eras[i2].since = date.valueOf(); break; } switch (typeof eras[i2].until) { case "undefined": eras[i2].until = Infinity; break; case "string": date = hooks(eras[i2].until).startOf("day").valueOf(); eras[i2].until = date.valueOf(); break; } } return eras; } function localeErasParse(eraName, format3, strict) { var i2, l2, eras = this.eras(), name, abbr, narrow; eraName = eraName.toUpperCase(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { name = eras[i2].name.toUpperCase(); abbr = eras[i2].abbr.toUpperCase(); narrow = eras[i2].narrow.toUpperCase(); if (strict) { switch (format3) { case "N": case "NN": case "NNN": if (abbr === eraName) { return eras[i2]; } break; case "NNNN": if (name === eraName) { return eras[i2]; } break; case "NNNNN": if (narrow === eraName) { return eras[i2]; } break; } } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { return eras[i2]; } } } function localeErasConvertYear(era, year) { var dir = era.since <= era.until ? 1 : -1; if (year === void 0) { return hooks(era.since).year(); } else { return hooks(era.since).year() + (year - era.offset) * dir; } } function getEraName() { var i2, l2, val, eras = this.localeData().eras(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].name; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].name; } } return ""; } function getEraNarrow() { var i2, l2, val, eras = this.localeData().eras(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].narrow; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].narrow; } } return ""; } function getEraAbbr() { var i2, l2, val, eras = this.localeData().eras(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until) { return eras[i2].abbr; } if (eras[i2].until <= val && val <= eras[i2].since) { return eras[i2].abbr; } } return ""; } function getEraYear() { var i2, l2, dir, val, eras = this.localeData().eras(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { dir = eras[i2].since <= eras[i2].until ? 1 : -1; val = this.clone().startOf("day").valueOf(); if (eras[i2].since <= val && val <= eras[i2].until || eras[i2].until <= val && val <= eras[i2].since) { return (this.year() - hooks(eras[i2].since).year()) * dir + eras[i2].offset; } } return this.year(); } function erasNameRegex(isStrict) { if (!hasOwnProp(this, "_erasNameRegex")) { computeErasParse.call(this); } return isStrict ? this._erasNameRegex : this._erasRegex; } function erasAbbrRegex(isStrict) { if (!hasOwnProp(this, "_erasAbbrRegex")) { computeErasParse.call(this); } return isStrict ? this._erasAbbrRegex : this._erasRegex; } function erasNarrowRegex(isStrict) { if (!hasOwnProp(this, "_erasNarrowRegex")) { computeErasParse.call(this); } return isStrict ? this._erasNarrowRegex : this._erasRegex; } function matchEraAbbr(isStrict, locale2) { return locale2.erasAbbrRegex(isStrict); } function matchEraName(isStrict, locale2) { return locale2.erasNameRegex(isStrict); } function matchEraNarrow(isStrict, locale2) { return locale2.erasNarrowRegex(isStrict); } function matchEraYearOrdinal(isStrict, locale2) { return locale2._eraYearOrdinalRegex || matchUnsigned; } function computeErasParse() { var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i2, l2, eras = this.eras(); for (i2 = 0, l2 = eras.length; i2 < l2; ++i2) { namePieces.push(regexEscape2(eras[i2].name)); abbrPieces.push(regexEscape2(eras[i2].abbr)); narrowPieces.push(regexEscape2(eras[i2].narrow)); mixedPieces.push(regexEscape2(eras[i2].name)); mixedPieces.push(regexEscape2(eras[i2].abbr)); mixedPieces.push(regexEscape2(eras[i2].narrow)); } this._erasRegex = new RegExp("^(" + mixedPieces.join("|") + ")", "i"); this._erasNameRegex = new RegExp("^(" + namePieces.join("|") + ")", "i"); this._erasAbbrRegex = new RegExp("^(" + abbrPieces.join("|") + ")", "i"); this._erasNarrowRegex = new RegExp( "^(" + narrowPieces.join("|") + ")", "i" ); } addFormatToken(0, ["gg", 2], 0, function() { return this.weekYear() % 100; }); addFormatToken(0, ["GG", 2], 0, function() { return this.isoWeekYear() % 100; }); function addWeekYearFormatToken(token2, getter) { addFormatToken(0, [token2, token2.length], 0, getter); } addWeekYearFormatToken("gggg", "weekYear"); addWeekYearFormatToken("ggggg", "weekYear"); addWeekYearFormatToken("GGGG", "isoWeekYear"); addWeekYearFormatToken("GGGGG", "isoWeekYear"); addUnitAlias("weekYear", "gg"); addUnitAlias("isoWeekYear", "GG"); addUnitPriority("weekYear", 1); addUnitPriority("isoWeekYear", 1); addRegexToken("G", matchSigned); addRegexToken("g", matchSigned); addRegexToken("GG", match1to2, match22); addRegexToken("gg", match1to2, match22); addRegexToken("GGGG", match1to4, match42); addRegexToken("gggg", match1to4, match42); addRegexToken("GGGGG", match1to6, match6); addRegexToken("ggggg", match1to6, match6); addWeekParseToken( ["gggg", "ggggg", "GGGG", "GGGGG"], function(input, week, config, token2) { week[token2.substr(0, 2)] = toInt(input); } ); addWeekParseToken(["gg", "GG"], function(input, week, config, token2) { week[token2] = hooks.parseTwoDigitYear(input); }); function getSetWeekYear(input) { return getSetWeekYearHelper.call( this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy ); } function getSetISOWeekYear(input) { return getSetWeekYearHelper.call( this, input, this.isoWeek(), this.isoWeekday(), 1, 4 ); } function getISOWeeksInYear() { return weeksInYear(this.year(), 1, 4); } function getISOWeeksInISOWeekYear() { return weeksInYear(this.isoWeekYear(), 1, 4); } function getWeeksInYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); } function getWeeksInWeekYear() { var weekInfo = this.localeData()._week; return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); } function getSetWeekYearHelper(input, week, weekday, dow, doy) { var weeksTarget; if (input == null) { return weekOfYear(this, dow, doy).year; } else { weeksTarget = weeksInYear(input, dow, doy); if (week > weeksTarget) { week = weeksTarget; } return setWeekAll.call(this, input, week, weekday, dow, doy); } } function setWeekAll(weekYear, week, weekday, dow, doy) { var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); this.year(date.getUTCFullYear()); this.month(date.getUTCMonth()); this.date(date.getUTCDate()); return this; } addFormatToken("Q", 0, "Qo", "quarter"); addUnitAlias("quarter", "Q"); addUnitPriority("quarter", 7); addRegexToken("Q", match1); addParseToken("Q", function(input, array2) { array2[MONTH] = (toInt(input) - 1) * 3; }); function getSetQuarter(input) { return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); } addFormatToken("D", ["DD", 2], "Do", "date"); addUnitAlias("date", "D"); addUnitPriority("date", 9); addRegexToken("D", match1to2); addRegexToken("DD", match1to2, match22); addRegexToken("Do", function(isStrict, locale2) { return isStrict ? locale2._dayOfMonthOrdinalParse || locale2._ordinalParse : locale2._dayOfMonthOrdinalParseLenient; }); addParseToken(["D", "DD"], DATE); addParseToken("Do", function(input, array2) { array2[DATE] = toInt(input.match(match1to2)[0]); }); var getSetDayOfMonth = makeGetSet("Date", true); addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"); addUnitAlias("dayOfYear", "DDD"); addUnitPriority("dayOfYear", 4); addRegexToken("DDD", match1to3); addRegexToken("DDDD", match32); addParseToken(["DDD", "DDDD"], function(input, array2, config) { config._dayOfYear = toInt(input); }); function getSetDayOfYear(input) { var dayOfYear = Math.round( (this.clone().startOf("day") - this.clone().startOf("year")) / 864e5 ) + 1; return input == null ? dayOfYear : this.add(input - dayOfYear, "d"); } addFormatToken("m", ["mm", 2], 0, "minute"); addUnitAlias("minute", "m"); addUnitPriority("minute", 14); addRegexToken("m", match1to2); addRegexToken("mm", match1to2, match22); addParseToken(["m", "mm"], MINUTE); var getSetMinute = makeGetSet("Minutes", false); addFormatToken("s", ["ss", 2], 0, "second"); addUnitAlias("second", "s"); addUnitPriority("second", 15); addRegexToken("s", match1to2); addRegexToken("ss", match1to2, match22); addParseToken(["s", "ss"], SECOND); var getSetSecond = makeGetSet("Seconds", false); addFormatToken("S", 0, 0, function() { return ~~(this.millisecond() / 100); }); addFormatToken(0, ["SS", 2], 0, function() { return ~~(this.millisecond() / 10); }); addFormatToken(0, ["SSS", 3], 0, "millisecond"); addFormatToken(0, ["SSSS", 4], 0, function() { return this.millisecond() * 10; }); addFormatToken(0, ["SSSSS", 5], 0, function() { return this.millisecond() * 100; }); addFormatToken(0, ["SSSSSS", 6], 0, function() { return this.millisecond() * 1e3; }); addFormatToken(0, ["SSSSSSS", 7], 0, function() { return this.millisecond() * 1e4; }); addFormatToken(0, ["SSSSSSSS", 8], 0, function() { return this.millisecond() * 1e5; }); addFormatToken(0, ["SSSSSSSSS", 9], 0, function() { return this.millisecond() * 1e6; }); addUnitAlias("millisecond", "ms"); addUnitPriority("millisecond", 16); addRegexToken("S", match1to3, match1); addRegexToken("SS", match1to3, match22); addRegexToken("SSS", match1to3, match32); var token, getSetMillisecond; for (token = "SSSS"; token.length <= 9; token += "S") { addRegexToken(token, matchUnsigned); } function parseMs(input, array2) { array2[MILLISECOND] = toInt(("0." + input) * 1e3); } for (token = "S"; token.length <= 9; token += "S") { addParseToken(token, parseMs); } getSetMillisecond = makeGetSet("Milliseconds", false); addFormatToken("z", 0, 0, "zoneAbbr"); addFormatToken("zz", 0, 0, "zoneName"); function getZoneAbbr() { return this._isUTC ? "UTC" : ""; } function getZoneName() { return this._isUTC ? "Coordinated Universal Time" : ""; } var proto = Moment.prototype; proto.add = add; proto.calendar = calendar$1; proto.clone = clone2; proto.diff = diff; proto.endOf = endOf; proto.format = format2; proto.from = from; proto.fromNow = fromNow; proto.to = to; proto.toNow = toNow; proto.get = stringGet; proto.invalidAt = invalidAt; proto.isAfter = isAfter; proto.isBefore = isBefore; proto.isBetween = isBetween; proto.isSame = isSame; proto.isSameOrAfter = isSameOrAfter; proto.isSameOrBefore = isSameOrBefore; proto.isValid = isValid$2; proto.lang = lang; proto.locale = locale; proto.localeData = localeData; proto.max = prototypeMax; proto.min = prototypeMin; proto.parsingFlags = parsingFlags; proto.set = stringSet; proto.startOf = startOf; proto.subtract = subtract; proto.toArray = toArray2; proto.toObject = toObject; proto.toDate = toDate; proto.toISOString = toISOString; proto.inspect = inspect; if (typeof Symbol !== "undefined" && Symbol.for != null) { proto[Symbol.for("nodejs.util.inspect.custom")] = function() { return "Moment<" + this.format() + ">"; }; } proto.toJSON = toJSON; proto.toString = toString2; proto.unix = unix; proto.valueOf = valueOf; proto.creationData = creationData; proto.eraName = getEraName; proto.eraNarrow = getEraNarrow; proto.eraAbbr = getEraAbbr; proto.eraYear = getEraYear; proto.year = getSetYear; proto.isLeapYear = getIsLeapYear; proto.weekYear = getSetWeekYear; proto.isoWeekYear = getSetISOWeekYear; proto.quarter = proto.quarters = getSetQuarter; proto.month = getSetMonth; proto.daysInMonth = getDaysInMonth; proto.week = proto.weeks = getSetWeek; proto.isoWeek = proto.isoWeeks = getSetISOWeek; proto.weeksInYear = getWeeksInYear; proto.weeksInWeekYear = getWeeksInWeekYear; proto.isoWeeksInYear = getISOWeeksInYear; proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; proto.date = getSetDayOfMonth; proto.day = proto.days = getSetDayOfWeek; proto.weekday = getSetLocaleDayOfWeek; proto.isoWeekday = getSetISODayOfWeek; proto.dayOfYear = getSetDayOfYear; proto.hour = proto.hours = getSetHour; proto.minute = proto.minutes = getSetMinute; proto.second = proto.seconds = getSetSecond; proto.millisecond = proto.milliseconds = getSetMillisecond; proto.utcOffset = getSetOffset; proto.utc = setOffsetToUTC; proto.local = setOffsetToLocal; proto.parseZone = setOffsetToParsedOffset; proto.hasAlignedHourOffset = hasAlignedHourOffset; proto.isDST = isDaylightSavingTime; proto.isLocal = isLocal; proto.isUtcOffset = isUtcOffset; proto.isUtc = isUtc; proto.isUTC = isUtc; proto.zoneAbbr = getZoneAbbr; proto.zoneName = getZoneName; proto.dates = deprecate( "dates accessor is deprecated. Use date instead.", getSetDayOfMonth ); proto.months = deprecate( "months accessor is deprecated. Use month instead", getSetMonth ); proto.years = deprecate( "years accessor is deprecated. Use year instead", getSetYear ); proto.zone = deprecate( "moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", getSetZone ); proto.isDSTShifted = deprecate( "isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", isDaylightSavingTimeShifted ); function createUnix(input) { return createLocal(input * 1e3); } function createInZone() { return createLocal.apply(null, arguments).parseZone(); } function preParsePostFormat(string2) { return string2; } var proto$1 = Locale.prototype; proto$1.calendar = calendar; proto$1.longDateFormat = longDateFormat; proto$1.invalidDate = invalidDate; proto$1.ordinal = ordinal; proto$1.preparse = preParsePostFormat; proto$1.postformat = preParsePostFormat; proto$1.relativeTime = relativeTime; proto$1.pastFuture = pastFuture; proto$1.set = set2; proto$1.eras = localeEras; proto$1.erasParse = localeErasParse; proto$1.erasConvertYear = localeErasConvertYear; proto$1.erasAbbrRegex = erasAbbrRegex; proto$1.erasNameRegex = erasNameRegex; proto$1.erasNarrowRegex = erasNarrowRegex; proto$1.months = localeMonths; proto$1.monthsShort = localeMonthsShort; proto$1.monthsParse = localeMonthsParse; proto$1.monthsRegex = monthsRegex; proto$1.monthsShortRegex = monthsShortRegex; proto$1.week = localeWeek; proto$1.firstDayOfYear = localeFirstDayOfYear; proto$1.firstDayOfWeek = localeFirstDayOfWeek; proto$1.weekdays = localeWeekdays; proto$1.weekdaysMin = localeWeekdaysMin; proto$1.weekdaysShort = localeWeekdaysShort; proto$1.weekdaysParse = localeWeekdaysParse; proto$1.weekdaysRegex = weekdaysRegex; proto$1.weekdaysShortRegex = weekdaysShortRegex; proto$1.weekdaysMinRegex = weekdaysMinRegex; proto$1.isPM = localeIsPM; proto$1.meridiem = localeMeridiem; function get$1(format3, index2, field, setter) { var locale2 = getLocale(), utc = createUTC().set(setter, index2); return locale2[field](utc, format3); } function listMonthsImpl(format3, index2, field) { if (isNumber2(format3)) { index2 = format3; format3 = void 0; } format3 = format3 || ""; if (index2 != null) { return get$1(format3, index2, field, "month"); } var i2, out = []; for (i2 = 0; i2 < 12; i2++) { out[i2] = get$1(format3, i2, field, "month"); } return out; } function listWeekdaysImpl(localeSorted, format3, index2, field) { if (typeof localeSorted === "boolean") { if (isNumber2(format3)) { index2 = format3; format3 = void 0; } format3 = format3 || ""; } else { format3 = localeSorted; index2 = format3; localeSorted = false; if (isNumber2(format3)) { index2 = format3; format3 = void 0; } format3 = format3 || ""; } var locale2 = getLocale(), shift = localeSorted ? locale2._week.dow : 0, i2, out = []; if (index2 != null) { return get$1(format3, (index2 + shift) % 7, field, "day"); } for (i2 = 0; i2 < 7; i2++) { out[i2] = get$1(format3, (i2 + shift) % 7, field, "day"); } return out; } function listMonths(format3, index2) { return listMonthsImpl(format3, index2, "months"); } function listMonthsShort(format3, index2) { return listMonthsImpl(format3, index2, "monthsShort"); } function listWeekdays(localeSorted, format3, index2) { return listWeekdaysImpl(localeSorted, format3, index2, "weekdays"); } function listWeekdaysShort(localeSorted, format3, index2) { return listWeekdaysImpl(localeSorted, format3, index2, "weekdaysShort"); } function listWeekdaysMin(localeSorted, format3, index2) { return listWeekdaysImpl(localeSorted, format3, index2, "weekdaysMin"); } getSetGlobalLocale("en", { eras: [ { since: "0001-01-01", until: Infinity, offset: 1, name: "Anno Domini", narrow: "AD", abbr: "AD" }, { since: "0000-12-31", until: -Infinity, offset: 1, name: "Before Christ", narrow: "BC", abbr: "BC" } ], dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function(number) { var b2 = number % 10, output2 = toInt(number % 100 / 10) === 1 ? "th" : b2 === 1 ? "st" : b2 === 2 ? "nd" : b2 === 3 ? "rd" : "th"; return number + output2; } }); hooks.lang = deprecate( "moment.lang is deprecated. Use moment.locale instead.", getSetGlobalLocale ); hooks.langData = deprecate( "moment.langData is deprecated. Use moment.localeData instead.", getLocale ); var mathAbs = Math.abs; function abs() { var data = this._data; this._milliseconds = mathAbs(this._milliseconds); this._days = mathAbs(this._days); this._months = mathAbs(this._months); data.milliseconds = mathAbs(data.milliseconds); data.seconds = mathAbs(data.seconds); data.minutes = mathAbs(data.minutes); data.hours = mathAbs(data.hours); data.months = mathAbs(data.months); data.years = mathAbs(data.years); return this; } function addSubtract$1(duration, input, value, direction) { var other = createDuration(input, value); duration._milliseconds += direction * other._milliseconds; duration._days += direction * other._days; duration._months += direction * other._months; return duration._bubble(); } function add$1(input, value) { return addSubtract$1(this, input, value, 1); } function subtract$1(input, value) { return addSubtract$1(this, input, value, -1); } function absCeil(number) { if (number < 0) { return Math.floor(number); } else { return Math.ceil(number); } } function bubble2() { var milliseconds2 = this._milliseconds, days2 = this._days, months2 = this._months, data = this._data, seconds2, minutes2, hours2, years2, monthsFromDays; if (!(milliseconds2 >= 0 && days2 >= 0 && months2 >= 0 || milliseconds2 <= 0 && days2 <= 0 && months2 <= 0)) { milliseconds2 += absCeil(monthsToDays(months2) + days2) * 864e5; days2 = 0; months2 = 0; } data.milliseconds = milliseconds2 % 1e3; seconds2 = absFloor(milliseconds2 / 1e3); data.seconds = seconds2 % 60; minutes2 = absFloor(seconds2 / 60); data.minutes = minutes2 % 60; hours2 = absFloor(minutes2 / 60); data.hours = hours2 % 24; days2 += absFloor(hours2 / 24); monthsFromDays = absFloor(daysToMonths(days2)); months2 += monthsFromDays; days2 -= absCeil(monthsToDays(monthsFromDays)); years2 = absFloor(months2 / 12); months2 %= 12; data.days = days2; data.months = months2; data.years = years2; return this; } function daysToMonths(days2) { return days2 * 4800 / 146097; } function monthsToDays(months2) { return months2 * 146097 / 4800; } function as(units) { if (!this.isValid()) { return NaN; } var days2, months2, milliseconds2 = this._milliseconds; units = normalizeUnits(units); if (units === "month" || units === "quarter" || units === "year") { days2 = this._days + milliseconds2 / 864e5; months2 = this._months + daysToMonths(days2); switch (units) { case "month": return months2; case "quarter": return months2 / 3; case "year": return months2 / 12; } } else { days2 = this._days + Math.round(monthsToDays(this._months)); switch (units) { case "week": return days2 / 7 + milliseconds2 / 6048e5; case "day": return days2 + milliseconds2 / 864e5; case "hour": return days2 * 24 + milliseconds2 / 36e5; case "minute": return days2 * 1440 + milliseconds2 / 6e4; case "second": return days2 * 86400 + milliseconds2 / 1e3; case "millisecond": return Math.floor(days2 * 864e5) + milliseconds2; default: throw new Error("Unknown unit " + units); } } } function valueOf$1() { if (!this.isValid()) { return NaN; } return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6; } function makeAs(alias) { return function() { return this.as(alias); }; } var asMilliseconds = makeAs("ms"), asSeconds = makeAs("s"), asMinutes = makeAs("m"), asHours = makeAs("h"), asDays = makeAs("d"), asWeeks = makeAs("w"), asMonths = makeAs("M"), asQuarters = makeAs("Q"), asYears = makeAs("y"); function clone$1() { return createDuration(this); } function get$2(units) { units = normalizeUnits(units); return this.isValid() ? this[units + "s"]() : NaN; } function makeGetter(name) { return function() { return this.isValid() ? this._data[name] : NaN; }; } var milliseconds = makeGetter("milliseconds"), seconds = makeGetter("seconds"), minutes = makeGetter("minutes"), hours = makeGetter("hours"), days = makeGetter("days"), months = makeGetter("months"), years = makeGetter("years"); function weeks() { return absFloor(this.days() / 7); } var round2 = Math.round, thresholds = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 }; function substituteTimeAgo(string2, number, withoutSuffix, isFuture, locale2) { return locale2.relativeTime(number || 1, !!withoutSuffix, string2, isFuture); } function relativeTime$1(posNegDuration, withoutSuffix, thresholds2, locale2) { var duration = createDuration(posNegDuration).abs(), seconds2 = round2(duration.as("s")), minutes2 = round2(duration.as("m")), hours2 = round2(duration.as("h")), days2 = round2(duration.as("d")), months2 = round2(duration.as("M")), weeks2 = round2(duration.as("w")), years2 = round2(duration.as("y")), a2 = seconds2 <= thresholds2.ss && ["s", seconds2] || seconds2 < thresholds2.s && ["ss", seconds2] || minutes2 <= 1 && ["m"] || minutes2 < thresholds2.m && ["mm", minutes2] || hours2 <= 1 && ["h"] || hours2 < thresholds2.h && ["hh", hours2] || days2 <= 1 && ["d"] || days2 < thresholds2.d && ["dd", days2]; if (thresholds2.w != null) { a2 = a2 || weeks2 <= 1 && ["w"] || weeks2 < thresholds2.w && ["ww", weeks2]; } a2 = a2 || months2 <= 1 && ["M"] || months2 < thresholds2.M && ["MM", months2] || years2 <= 1 && ["y"] || ["yy", years2]; a2[2] = withoutSuffix; a2[3] = +posNegDuration > 0; a2[4] = locale2; return substituteTimeAgo.apply(null, a2); } function getSetRelativeTimeRounding(roundingFunction) { if (roundingFunction === void 0) { return round2; } if (typeof roundingFunction === "function") { round2 = roundingFunction; return true; } return false; } function getSetRelativeTimeThreshold(threshold, limit) { if (thresholds[threshold] === void 0) { return false; } if (limit === void 0) { return thresholds[threshold]; } thresholds[threshold] = limit; if (threshold === "s") { thresholds.ss = limit - 1; } return true; } function humanize(argWithSuffix, argThresholds) { if (!this.isValid()) { return this.localeData().invalidDate(); } var withSuffix = false, th = thresholds, locale2, output2; if (typeof argWithSuffix === "object") { argThresholds = argWithSuffix; argWithSuffix = false; } if (typeof argWithSuffix === "boolean") { withSuffix = argWithSuffix; } if (typeof argThresholds === "object") { th = Object.assign({}, thresholds, argThresholds); if (argThresholds.s != null && argThresholds.ss == null) { th.ss = argThresholds.s - 1; } } locale2 = this.localeData(); output2 = relativeTime$1(this, !withSuffix, th, locale2); if (withSuffix) { output2 = locale2.pastFuture(+this, output2); } return locale2.postformat(output2); } var abs$1 = Math.abs; function sign(x2) { return (x2 > 0) - (x2 < 0) || +x2; } function toISOString$1() { if (!this.isValid()) { return this.localeData().invalidDate(); } var seconds2 = abs$1(this._milliseconds) / 1e3, days2 = abs$1(this._days), months2 = abs$1(this._months), minutes2, hours2, years2, s2, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign; if (!total) { return "P0D"; } minutes2 = absFloor(seconds2 / 60); hours2 = absFloor(minutes2 / 60); seconds2 %= 60; minutes2 %= 60; years2 = absFloor(months2 / 12); months2 %= 12; s2 = seconds2 ? seconds2.toFixed(3).replace(/\.?0+$/, "") : ""; totalSign = total < 0 ? "-" : ""; ymSign = sign(this._months) !== sign(total) ? "-" : ""; daysSign = sign(this._days) !== sign(total) ? "-" : ""; hmsSign = sign(this._milliseconds) !== sign(total) ? "-" : ""; return totalSign + "P" + (years2 ? ymSign + years2 + "Y" : "") + (months2 ? ymSign + months2 + "M" : "") + (days2 ? daysSign + days2 + "D" : "") + (hours2 || minutes2 || seconds2 ? "T" : "") + (hours2 ? hmsSign + hours2 + "H" : "") + (minutes2 ? hmsSign + minutes2 + "M" : "") + (seconds2 ? hmsSign + s2 + "S" : ""); } var proto$2 = Duration.prototype; proto$2.isValid = isValid$1; proto$2.abs = abs; proto$2.add = add$1; proto$2.subtract = subtract$1; proto$2.as = as; proto$2.asMilliseconds = asMilliseconds; proto$2.asSeconds = asSeconds; proto$2.asMinutes = asMinutes; proto$2.asHours = asHours; proto$2.asDays = asDays; proto$2.asWeeks = asWeeks; proto$2.asMonths = asMonths; proto$2.asQuarters = asQuarters; proto$2.asYears = asYears; proto$2.valueOf = valueOf$1; proto$2._bubble = bubble2; proto$2.clone = clone$1; proto$2.get = get$2; proto$2.milliseconds = milliseconds; proto$2.seconds = seconds; proto$2.minutes = minutes; proto$2.hours = hours; proto$2.days = days; proto$2.weeks = weeks; proto$2.months = months; proto$2.years = years; proto$2.humanize = humanize; proto$2.toISOString = toISOString$1; proto$2.toString = toISOString$1; proto$2.toJSON = toISOString$1; proto$2.locale = locale; proto$2.localeData = localeData; proto$2.toIsoString = deprecate( "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", toISOString$1 ); proto$2.lang = lang; addFormatToken("X", 0, 0, "unix"); addFormatToken("x", 0, 0, "valueOf"); addRegexToken("x", matchSigned); addRegexToken("X", matchTimestamp); addParseToken("X", function(input, array2, config) { config._d = new Date(parseFloat(input) * 1e3); }); addParseToken("x", function(input, array2, config) { config._d = new Date(toInt(input)); }); hooks.version = "2.29.4"; setHookCallback(createLocal); hooks.fn = proto; hooks.min = min3; hooks.max = max3; hooks.now = now2; hooks.utc = createUTC; hooks.unix = createUnix; hooks.months = listMonths; hooks.isDate = isDate3; hooks.locale = getSetGlobalLocale; hooks.invalid = createInvalid; hooks.duration = createDuration; hooks.isMoment = isMoment; hooks.weekdays = listWeekdays; hooks.parseZone = createInZone; hooks.localeData = getLocale; hooks.isDuration = isDuration; hooks.monthsShort = listMonthsShort; hooks.weekdaysMin = listWeekdaysMin; hooks.defineLocale = defineLocale; hooks.updateLocale = updateLocale; hooks.locales = listLocales; hooks.weekdaysShort = listWeekdaysShort; hooks.normalizeUnits = normalizeUnits; hooks.relativeTimeRounding = getSetRelativeTimeRounding; hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; hooks.calendarFormat = getCalendarFormat; hooks.prototype = proto; hooks.HTML5_FMT = { DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", DATE: "YYYY-MM-DD", TIME: "HH:mm", TIME_SECONDS: "HH:mm:ss", TIME_MS: "HH:mm:ss.SSS", WEEK: "GGGG-[W]WW", MONTH: "YYYY-MM" }; return hooks; }); } }); // node_modules/svelte/internal/index.js var require_internal = __commonJS({ "node_modules/svelte/internal/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function noop3() { } var identity3 = (x2) => x2; function assign2(tar, src) { for (const k2 in src) tar[k2] = src[k2]; return tar; } function is_promise2(value) { return value && typeof value === "object" && typeof value.then === "function"; } function add_location(element3, file, line, column, char) { element3.__svelte_meta = { loc: { file, line, column, char } }; } function run2(fn3) { return fn3(); } function blank_object2() { return /* @__PURE__ */ Object.create(null); } function run_all2(fns) { fns.forEach(run2); } function is_function2(thing) { return typeof thing === "function"; } function safe_not_equal2(a2, b2) { return a2 != a2 ? b2 == b2 : a2 !== b2 || (a2 && typeof a2 === "object" || typeof a2 === "function"); } var src_url_equal_anchor2; function src_url_equal2(element_src, url) { if (!src_url_equal_anchor2) { src_url_equal_anchor2 = document.createElement("a"); } src_url_equal_anchor2.href = url; return element_src === src_url_equal_anchor2.href; } function not_equal(a2, b2) { return a2 != a2 ? b2 == b2 : a2 !== b2; } function is_empty2(obj) { return Object.keys(obj).length === 0; } function validate_store(store, name) { if (store != null && typeof store.subscribe !== "function") { throw new Error(`'${name}' is not a store with a 'subscribe' method`); } } function subscribe2(store, ...callbacks) { if (store == null) { return noop3; } const unsub = store.subscribe(...callbacks); return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; } function get_store_value2(store) { let value; subscribe2(store, (_24) => value = _24)(); return value; } function component_subscribe2(component, store, callback) { component.$$.on_destroy.push(subscribe2(store, callback)); } function create_slot2(definition, ctx, $$scope, fn3) { if (definition) { const slot_ctx = get_slot_context2(definition, ctx, $$scope, fn3); return definition[0](slot_ctx); } } function get_slot_context2(definition, ctx, $$scope, fn3) { return definition[1] && fn3 ? assign2($$scope.ctx.slice(), definition[1](fn3(ctx))) : $$scope.ctx; } function get_slot_changes2(definition, $$scope, dirty, fn3) { if (definition[2] && fn3) { const lets = definition[2](fn3(dirty)); if ($$scope.dirty === void 0) { return lets; } if (typeof lets === "object") { const merged = []; const len = Math.max($$scope.dirty.length, lets.length); for (let i2 = 0; i2 < len; i2 += 1) { merged[i2] = $$scope.dirty[i2] | lets[i2]; } return merged; } return $$scope.dirty | lets; } return $$scope.dirty; } function update_slot_base2(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) { if (slot_changes) { const slot_context = get_slot_context2(slot_definition, ctx, $$scope, get_slot_context_fn); slot.p(slot_context, slot_changes); } } function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) { const slot_changes = get_slot_changes2(slot_definition, $$scope, dirty, get_slot_changes_fn); update_slot_base2(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn); } function get_all_dirty_from_scope2($$scope) { if ($$scope.ctx.length > 32) { const dirty = []; const length = $$scope.ctx.length / 32; for (let i2 = 0; i2 < length; i2++) { dirty[i2] = -1; } return dirty; } return -1; } function exclude_internal_props(props) { const result = {}; for (const k2 in props) if (k2[0] !== "$") result[k2] = props[k2]; return result; } function compute_rest_props(props, keys) { const rest = {}; keys = new Set(keys); for (const k2 in props) if (!keys.has(k2) && k2[0] !== "$") rest[k2] = props[k2]; return rest; } function compute_slots2(slots) { const result = {}; for (const key in slots) { result[key] = true; } return result; } function once(fn3) { let ran = false; return function(...args) { if (ran) return; ran = true; fn3.call(this, ...args); }; } function null_to_empty2(value) { return value == null ? "" : value; } function set_store_value(store, ret, value) { store.set(value); return ret; } var has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); function action_destroyer2(action_result) { return action_result && is_function2(action_result.destroy) ? action_result.destroy : noop3; } var is_client2 = typeof window !== "undefined"; exports.now = is_client2 ? () => window.performance.now() : () => Date.now(); exports.raf = is_client2 ? (cb) => requestAnimationFrame(cb) : noop3; function set_now(fn3) { exports.now = fn3; } function set_raf(fn3) { exports.raf = fn3; } var tasks2 = /* @__PURE__ */ new Set(); function run_tasks2(now2) { tasks2.forEach((task2) => { if (!task2.c(now2)) { tasks2.delete(task2); task2.f(); } }); if (tasks2.size !== 0) exports.raf(run_tasks2); } function clear_loops() { tasks2.clear(); } function loop3(callback) { let task2; if (tasks2.size === 0) exports.raf(run_tasks2); return { promise: new Promise((fulfill) => { tasks2.add(task2 = { c: callback, f: fulfill }); }), abort() { tasks2.delete(task2); } }; } var is_hydrating2 = false; function start_hydrating2() { is_hydrating2 = true; } function end_hydrating2() { is_hydrating2 = false; } function upper_bound(low, high, key, value) { while (low < high) { const mid = low + (high - low >> 1); if (key(mid) <= value) { low = mid + 1; } else { high = mid; } } return low; } function init_hydrate(target) { if (target.hydrate_init) return; target.hydrate_init = true; let children3 = target.childNodes; if (target.nodeName === "HEAD") { const myChildren = []; for (let i2 = 0; i2 < children3.length; i2++) { const node = children3[i2]; if (node.claim_order !== void 0) { myChildren.push(node); } } children3 = myChildren; } const m = new Int32Array(children3.length + 1); const p2 = new Int32Array(children3.length); m[0] = -1; let longest = 0; for (let i2 = 0; i2 < children3.length; i2++) { const current = children3[i2].claim_order; const seqLen = (longest > 0 && children3[m[longest]].claim_order <= current ? longest + 1 : upper_bound(1, longest, (idx) => children3[m[idx]].claim_order, current)) - 1; p2[i2] = m[seqLen] + 1; const newLen = seqLen + 1; m[newLen] = i2; longest = Math.max(newLen, longest); } const lis = []; const toMove = []; let last5 = children3.length - 1; for (let cur = m[longest] + 1; cur != 0; cur = p2[cur - 1]) { lis.push(children3[cur - 1]); for (; last5 >= cur; last5--) { toMove.push(children3[last5]); } last5--; } for (; last5 >= 0; last5--) { toMove.push(children3[last5]); } lis.reverse(); toMove.sort((a2, b2) => a2.claim_order - b2.claim_order); for (let i2 = 0, j2 = 0; i2 < toMove.length; i2++) { while (j2 < lis.length && toMove[i2].claim_order >= lis[j2].claim_order) { j2++; } const anchor = j2 < lis.length ? lis[j2] : null; target.insertBefore(toMove[i2], anchor); } } function append5(target, node) { target.appendChild(node); } function append_styles2(target, style_sheet_id, styles) { const append_styles_to = get_root_for_style2(target); if (!append_styles_to.getElementById(style_sheet_id)) { const style = element2("style"); style.id = style_sheet_id; style.textContent = styles; append_stylesheet2(append_styles_to, style); } } function get_root_for_style2(node) { if (!node) return document; const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; if (root && root.host) { return root; } return node.ownerDocument; } function append_empty_stylesheet2(node) { const style_element = element2("style"); append_stylesheet2(get_root_for_style2(node), style_element); return style_element.sheet; } function append_stylesheet2(node, style) { append5(node.head || node, style); return style.sheet; } function append_hydration(target, node) { if (is_hydrating2) { init_hydrate(target); if (target.actual_end_child === void 0 || target.actual_end_child !== null && target.actual_end_child.parentNode !== target) { target.actual_end_child = target.firstChild; } while (target.actual_end_child !== null && target.actual_end_child.claim_order === void 0) { target.actual_end_child = target.actual_end_child.nextSibling; } if (node !== target.actual_end_child) { if (node.claim_order !== void 0 || node.parentNode !== target) { target.insertBefore(node, target.actual_end_child); } } else { target.actual_end_child = node.nextSibling; } } else if (node.parentNode !== target || node.nextSibling !== null) { target.appendChild(node); } } function insert2(target, node, anchor) { target.insertBefore(node, anchor || null); } function insert_hydration(target, node, anchor) { if (is_hydrating2 && !anchor) { append_hydration(target, node); } else if (node.parentNode !== target || node.nextSibling != anchor) { target.insertBefore(node, anchor || null); } } function detach2(node) { if (node.parentNode) { node.parentNode.removeChild(node); } } function destroy_each2(iterations, detaching) { for (let i2 = 0; i2 < iterations.length; i2 += 1) { if (iterations[i2]) iterations[i2].d(detaching); } } function element2(name) { return document.createElement(name); } function element_is(name, is2) { return document.createElement(name, { is: is2 }); } function object_without_properties(obj, exclude) { const target = {}; for (const k2 in obj) { if (has_prop(obj, k2) && exclude.indexOf(k2) === -1) { target[k2] = obj[k2]; } } return target; } function svg_element(name) { return document.createElementNS("http://www.w3.org/2000/svg", name); } function text2(data) { return document.createTextNode(data); } function space2() { return text2(" "); } function empty4() { return text2(""); } function listen2(node, event, handler, options) { node.addEventListener(event, handler, options); return () => node.removeEventListener(event, handler, options); } function prevent_default(fn3) { return function(event) { event.preventDefault(); return fn3.call(this, event); }; } function stop_propagation2(fn3) { return function(event) { event.stopPropagation(); return fn3.call(this, event); }; } function self2(fn3) { return function(event) { if (event.target === this) fn3.call(this, event); }; } function trusted(fn3) { return function(event) { if (event.isTrusted) fn3.call(this, event); }; } function attr2(node, attribute, value) { if (value == null) node.removeAttribute(attribute); else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value); } function set_attributes2(node, attributes) { const descriptors = Object.getOwnPropertyDescriptors(node.__proto__); for (const key in attributes) { if (attributes[key] == null) { node.removeAttribute(key); } else if (key === "style") { node.style.cssText = attributes[key]; } else if (key === "__value") { node.value = node[key] = attributes[key]; } else if (descriptors[key] && descriptors[key].set) { node[key] = attributes[key]; } else { attr2(node, key, attributes[key]); } } } function set_svg_attributes(node, attributes) { for (const key in attributes) { attr2(node, key, attributes[key]); } } function set_custom_element_data_map2(node, data_map) { Object.keys(data_map).forEach((key) => { set_custom_element_data2(node, key, data_map[key]); }); } function set_custom_element_data2(node, prop, value) { if (prop in node) { node[prop] = typeof node[prop] === "boolean" && value === "" ? true : value; } else { attr2(node, prop, value); } } function xlink_attr(node, attribute, value) { node.setAttributeNS("http://www.w3.org/1999/xlink", attribute, value); } function get_binding_group_value(group, __value, checked) { const value = /* @__PURE__ */ new Set(); for (let i2 = 0; i2 < group.length; i2 += 1) { if (group[i2].checked) value.add(group[i2].__value); } if (!checked) { value.delete(__value); } return Array.from(value); } function to_number2(value) { return value === "" ? null : +value; } function time_ranges_to_array(ranges) { const array2 = []; for (let i2 = 0; i2 < ranges.length; i2 += 1) { array2.push({ start: ranges.start(i2), end: ranges.end(i2) }); } return array2; } function children2(element3) { return Array.from(element3.childNodes); } function init_claim_info(nodes) { if (nodes.claim_info === void 0) { nodes.claim_info = { last_index: 0, total_claimed: 0 }; } } function claim_node(nodes, predicate, processNode, createNode2, dontUpdateLastIndex = false) { init_claim_info(nodes); const resultNode = (() => { for (let i2 = nodes.claim_info.last_index; i2 < nodes.length; i2++) { const node = nodes[i2]; if (predicate(node)) { const replacement = processNode(node); if (replacement === void 0) { nodes.splice(i2, 1); } else { nodes[i2] = replacement; } if (!dontUpdateLastIndex) { nodes.claim_info.last_index = i2; } return node; } } for (let i2 = nodes.claim_info.last_index - 1; i2 >= 0; i2--) { const node = nodes[i2]; if (predicate(node)) { const replacement = processNode(node); if (replacement === void 0) { nodes.splice(i2, 1); } else { nodes[i2] = replacement; } if (!dontUpdateLastIndex) { nodes.claim_info.last_index = i2; } else if (replacement === void 0) { nodes.claim_info.last_index--; } return node; } } return createNode2(); })(); resultNode.claim_order = nodes.claim_info.total_claimed; nodes.claim_info.total_claimed += 1; return resultNode; } function claim_element_base(nodes, name, attributes, create_element) { return claim_node(nodes, (node) => node.nodeName === name, (node) => { const remove = []; for (let j2 = 0; j2 < node.attributes.length; j2++) { const attribute = node.attributes[j2]; if (!attributes[attribute.name]) { remove.push(attribute.name); } } remove.forEach((v2) => node.removeAttribute(v2)); return void 0; }, () => create_element(name)); } function claim_element(nodes, name, attributes) { return claim_element_base(nodes, name, attributes, element2); } function claim_svg_element(nodes, name, attributes) { return claim_element_base(nodes, name, attributes, svg_element); } function claim_text(nodes, data) { return claim_node( nodes, (node) => node.nodeType === 3, (node) => { const dataStr = "" + data; if (node.data.startsWith(dataStr)) { if (node.data.length !== dataStr.length) { return node.splitText(dataStr.length); } } else { node.data = dataStr; } }, () => text2(data), true ); } function claim_space(nodes) { return claim_text(nodes, " "); } function find_comment(nodes, text3, start2) { for (let i2 = start2; i2 < nodes.length; i2 += 1) { const node = nodes[i2]; if (node.nodeType === 8 && node.textContent.trim() === text3) { return i2; } } return nodes.length; } function claim_html_tag(nodes, is_svg) { const start_index = find_comment(nodes, "HTML_TAG_START", 0); const end_index = find_comment(nodes, "HTML_TAG_END", start_index); if (start_index === end_index) { return new HtmlTagHydration(void 0, is_svg); } init_claim_info(nodes); const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1); detach2(html_tag_nodes[0]); detach2(html_tag_nodes[html_tag_nodes.length - 1]); const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1); for (const n2 of claimed_nodes) { n2.claim_order = nodes.claim_info.total_claimed; nodes.claim_info.total_claimed += 1; } return new HtmlTagHydration(claimed_nodes, is_svg); } function set_data2(text3, data) { data = "" + data; if (text3.wholeText !== data) text3.data = data; } function set_input_value2(input, value) { input.value = value == null ? "" : value; } function set_input_type(input, type) { try { input.type = type; } catch (e) { } } function set_style2(node, key, value, important) { if (value === null) { node.style.removeProperty(key); } else { node.style.setProperty(key, value, important ? "important" : ""); } } function select_option2(select, value) { for (let i2 = 0; i2 < select.options.length; i2 += 1) { const option2 = select.options[i2]; if (option2.__value === value) { option2.selected = true; return; } } select.selectedIndex = -1; } function select_options(select, value) { for (let i2 = 0; i2 < select.options.length; i2 += 1) { const option2 = select.options[i2]; option2.selected = ~value.indexOf(option2.__value); } } function select_value(select) { const selected_option = select.querySelector(":checked") || select.options[0]; return selected_option && selected_option.__value; } function select_multiple_value(select) { return [].map.call(select.querySelectorAll(":checked"), (option2) => option2.__value); } var crossorigin2; function is_crossorigin2() { if (crossorigin2 === void 0) { crossorigin2 = false; try { if (typeof window !== "undefined" && window.parent) { void window.parent.document; } } catch (error2) { crossorigin2 = true; } } return crossorigin2; } function add_resize_listener2(node, fn3) { const computed_style = getComputedStyle(node); if (computed_style.position === "static") { node.style.position = "relative"; } const iframe = element2("iframe"); iframe.setAttribute("style", "display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"); iframe.setAttribute("aria-hidden", "true"); iframe.tabIndex = -1; const crossorigin3 = is_crossorigin2(); let unsubscribe; if (crossorigin3) { iframe.src = "data:text/html,