/*! For license information please see chart-utils.min.js.LICENSE.txt */ ;(() => { "use strict" function t(t) { return (t + 0.5) | 0 } const e = (t, e, n) => Math.max(Math.min(t, n), e) function n(n) { return e(t(2.55 * n), 0, 255) } function r(n) { return e(t(255 * n), 0, 255) } function s(n) { return e(t(n / 2.55) / 100, 0, 1) } function i(n) { return e(t(100 * n), 0, 100) } const a = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15, }, o = [..."0123456789ABCDEF"], u = (t) => o[15 & t], l = (t) => o[(240 & t) >> 4] + o[15 & t], c = (t) => (240 & t) >> 4 == (15 & t) const h = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/ function d(t, e, n) { const r = e * Math.min(n, 1 - n), s = (e, s = (e + t / 30) % 12) => n - r * Math.max(Math.min(s - 3, 9 - s, 1), -1) return [s(0), s(8), s(4)] } function f(t, e, n) { const r = (r, s = (r + t / 60) % 6) => n - n * e * Math.max(Math.min(s, 4 - s, 1), 0) return [r(5), r(3), r(1)] } function m(t, e, n) { const r = d(t, 1, 0.5) let s for (e + n > 1 && ((s = 1 / (e + n)), (e *= s), (n *= s)), s = 0; s < 3; s++) (r[s] *= 1 - e - n), (r[s] += e) return r } function y(t) { const e = t.r / 255, n = t.g / 255, r = t.b / 255, s = Math.max(e, n, r), i = Math.min(e, n, r), a = (s + i) / 2 let o, u, l return ( s !== i && ((l = s - i), (u = a > 0.5 ? l / (2 - s - i) : l / (s + i)), (o = (function (t, e, n, r, s) { return t === s ? (e - n) / r + (e < n ? 6 : 0) : e === s ? (n - t) / r + 2 : (t - e) / r + 4 })(e, n, r, l, s)), (o = 60 * o + 0.5)), [0 | o, u || 0, a] ) } function g(t, e, n, s) { return (Array.isArray(e) ? t(e[0], e[1], e[2]) : t(e, n, s)).map(r) } function p(t, e, n) { return g(d, t, e, n) } function w(t) { return ((t % 360) + 360) % 360 } const b = { x: "dark", Z: "light", Y: "re", X: "blu", W: "gr", V: "medium", U: "slate", A: "ee", T: "ol", S: "or", B: "ra", C: "lateg", D: "ights", R: "in", Q: "turquois", E: "hi", P: "ro", O: "al", N: "le", M: "de", L: "yello", F: "en", K: "ch", G: "arks", H: "ea", I: "ightg", J: "wh", }, v = { OiceXe: "f0f8ff", antiquewEte: "faebd7", aqua: "ffff", aquamarRe: "7fffd4", azuY: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "0", blanKedOmond: "ffebcd", Xe: "ff", XeviTet: "8a2be2", bPwn: "a52a2a", burlywood: "deb887", caMtXe: "5f9ea0", KartYuse: "7fff00", KocTate: "d2691e", cSO: "ff7f50", cSnflowerXe: "6495ed", cSnsilk: "fff8dc", crimson: "dc143c", cyan: "ffff", xXe: "8b", xcyan: "8b8b", xgTMnPd: "b8860b", xWay: "a9a9a9", xgYF: "6400", xgYy: "a9a9a9", xkhaki: "bdb76b", xmagFta: "8b008b", xTivegYF: "556b2f", xSange: "ff8c00", xScEd: "9932cc", xYd: "8b0000", xsOmon: "e9967a", xsHgYF: "8fbc8f", xUXe: "483d8b", xUWay: "2f4f4f", xUgYy: "2f4f4f", xQe: "ced1", xviTet: "9400d3", dAppRk: "ff1493", dApskyXe: "bfff", dimWay: "696969", dimgYy: "696969", dodgerXe: "1e90ff", fiYbrick: "b22222", flSOwEte: "fffaf0", foYstWAn: "228b22", fuKsia: "ff00ff", gaRsbSo: "dcdcdc", ghostwEte: "f8f8ff", gTd: "ffd700", gTMnPd: "daa520", Way: "808080", gYF: "8000", gYFLw: "adff2f", gYy: "808080", honeyMw: "f0fff0", hotpRk: "ff69b4", RdianYd: "cd5c5c", Rdigo: "4b0082", ivSy: "fffff0", khaki: "f0e68c", lavFMr: "e6e6fa", lavFMrXsh: "fff0f5", lawngYF: "7cfc00", NmoncEffon: "fffacd", ZXe: "add8e6", ZcSO: "f08080", Zcyan: "e0ffff", ZgTMnPdLw: "fafad2", ZWay: "d3d3d3", ZgYF: "90ee90", ZgYy: "d3d3d3", ZpRk: "ffb6c1", ZsOmon: "ffa07a", ZsHgYF: "20b2aa", ZskyXe: "87cefa", ZUWay: "778899", ZUgYy: "778899", ZstAlXe: "b0c4de", ZLw: "ffffe0", lime: "ff00", limegYF: "32cd32", lRF: "faf0e6", magFta: "ff00ff", maPon: "800000", VaquamarRe: "66cdaa", VXe: "cd", VScEd: "ba55d3", VpurpN: "9370db", VsHgYF: "3cb371", VUXe: "7b68ee", VsprRggYF: "fa9a", VQe: "48d1cc", VviTetYd: "c71585", midnightXe: "191970", mRtcYam: "f5fffa", mistyPse: "ffe4e1", moccasR: "ffe4b5", navajowEte: "ffdead", navy: "80", Tdlace: "fdf5e6", Tive: "808000", TivedBb: "6b8e23", Sange: "ffa500", SangeYd: "ff4500", ScEd: "da70d6", pOegTMnPd: "eee8aa", pOegYF: "98fb98", pOeQe: "afeeee", pOeviTetYd: "db7093", papayawEp: "ffefd5", pHKpuff: "ffdab9", peru: "cd853f", pRk: "ffc0cb", plum: "dda0dd", powMrXe: "b0e0e6", purpN: "800080", YbeccapurpN: "663399", Yd: "ff0000", Psybrown: "bc8f8f", PyOXe: "4169e1", saddNbPwn: "8b4513", sOmon: "fa8072", sandybPwn: "f4a460", sHgYF: "2e8b57", sHshell: "fff5ee", siFna: "a0522d", silver: "c0c0c0", skyXe: "87ceeb", UXe: "6a5acd", UWay: "708090", UgYy: "708090", snow: "fffafa", sprRggYF: "ff7f", stAlXe: "4682b4", tan: "d2b48c", teO: "8080", tEstN: "d8bfd8", tomato: "ff6347", Qe: "40e0d0", viTet: "ee82ee", JHt: "f5deb3", wEte: "ffffff", wEtesmoke: "f5f5f5", Lw: "ffff00", LwgYF: "9acd32", } let O const S = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/, T = (t) => (t <= 0.0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055), M = (t) => (t <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4)) function k(t, e, n) { if (t) { let r = y(t) ;(r[e] = Math.max(0, Math.min(r[e] + r[e] * n, 0 === e ? 360 : 1))), (r = p(r)), (t.r = r[0]), (t.g = r[1]), (t.b = r[2]) } } function N(t, e) { return t ? Object.assign(e || {}, t) : t } function D(t) { var e = { r: 0, g: 0, b: 0, a: 255 } return ( Array.isArray(t) ? t.length >= 3 && ((e = { r: t[0], g: t[1], b: t[2], a: 255 }), t.length > 3 && (e.a = r(t[3]))) : ((e = N(t, { r: 0, g: 0, b: 0, a: 1 })).a = r(e.a)), e ) } function E(t) { return "r" === t.charAt(0) ? (function (t) { const r = S.exec(t) let s, i, a, o = 255 if (r) { if (r[7] !== s) { const t = +r[7] o = r[8] ? n(t) : e(255 * t, 0, 255) } return ( (s = +r[1]), (i = +r[3]), (a = +r[5]), (s = 255 & (r[2] ? n(s) : e(s, 0, 255))), (i = 255 & (r[4] ? n(i) : e(i, 0, 255))), (a = 255 & (r[6] ? n(a) : e(a, 0, 255))), { r: s, g: i, b: a, a: o } ) } })(t) : (function (t) { const e = h.exec(t) let s, i = 255 if (!e) return e[5] !== s && (i = e[6] ? n(+e[5]) : r(+e[5])) const a = w(+e[2]), o = +e[3] / 100, u = +e[4] / 100 return ( (s = "hwb" === e[1] ? (function (t, e, n) { return g(m, t, e, n) })(a, o, u) : "hsv" === e[1] ? (function (t, e, n) { return g(f, t, e, n) })(a, o, u) : p(a, o, u)), { r: s[0], g: s[1], b: s[2], a: i } ) })(t) } class x { constructor(t) { if (t instanceof x) return t const e = typeof t let n var r, s, i "object" === e ? (n = D(t)) : "string" === e && ((i = (r = t).length), "#" === r[0] && (4 === i || 5 === i ? (s = { r: 255 & (17 * a[r[1]]), g: 255 & (17 * a[r[2]]), b: 255 & (17 * a[r[3]]), a: 5 === i ? 17 * a[r[4]] : 255, }) : (7 !== i && 9 !== i) || (s = { r: (a[r[1]] << 4) | a[r[2]], g: (a[r[3]] << 4) | a[r[4]], b: (a[r[5]] << 4) | a[r[6]], a: 9 === i ? (a[r[7]] << 4) | a[r[8]] : 255, })), (n = s || (function (t) { O || ((O = (function () { const t = {}, e = Object.keys(v), n = Object.keys(b) let r, s, i, a, o for (r = 0; r < e.length; r++) { for (a = o = e[r], s = 0; s < n.length; s++) (i = n[s]), (o = o.replace(i, b[i])) ;(i = parseInt(v[a], 16)), (t[o] = [(i >> 16) & 255, (i >> 8) & 255, 255 & i]) } return t })()), (O.transparent = [0, 0, 0, 0])) const e = O[t.toLowerCase()] return e && { r: e[0], g: e[1], b: e[2], a: 4 === e.length ? e[3] : 255 } })(t) || E(t))), (this._rgb = n), (this._valid = !!n) } get valid() { return this._valid } get rgb() { var t = N(this._rgb) return t && (t.a = s(t.a)), t } set rgb(t) { this._rgb = D(t) } rgbString() { return this._valid ? (t = this._rgb) && (t.a < 255 ? `rgba(${t.r}, ${t.g}, ${t.b}, ${s(t.a)})` : `rgb(${t.r}, ${t.g}, ${t.b})`) : void 0 var t } hexString() { return this._valid ? ((t = this._rgb), (e = ((t) => c(t.r) && c(t.g) && c(t.b) && c(t.a))(t) ? u : l), t ? "#" + e(t.r) + e(t.g) + e(t.b) + ((t, e) => (t < 255 ? e(t) : ""))(t.a, e) : void 0) : void 0 var t, e } hslString() { return this._valid ? (function (t) { if (!t) return const e = y(t), n = e[0], r = i(e[1]), a = i(e[2]) return t.a < 255 ? `hsla(${n}, ${r}%, ${a}%, ${s(t.a)})` : `hsl(${n}, ${r}%, ${a}%)` })(this._rgb) : void 0 } mix(t, e) { if (t) { const n = this.rgb, r = t.rgb let s const i = e === s ? 0.5 : e, a = 2 * i - 1, o = n.a - r.a, u = ((a * o == -1 ? a : (a + o) / (1 + a * o)) + 1) / 2 ;(s = 1 - u), (n.r = 255 & (u * n.r + s * r.r + 0.5)), (n.g = 255 & (u * n.g + s * r.g + 0.5)), (n.b = 255 & (u * n.b + s * r.b + 0.5)), (n.a = i * n.a + (1 - i) * r.a), (this.rgb = n) } return this } interpolate(t, e) { return ( t && (this._rgb = (function (t, e, n) { const i = M(s(t.r)), a = M(s(t.g)), o = M(s(t.b)) return { r: r(T(i + n * (M(s(e.r)) - i))), g: r(T(a + n * (M(s(e.g)) - a))), b: r(T(o + n * (M(s(e.b)) - o))), a: t.a + n * (e.a - t.a), } })(this._rgb, t._rgb, e)), this ) } clone() { return new x(this.rgb) } alpha(t) { return (this._rgb.a = r(t)), this } clearer(t) { return (this._rgb.a *= 1 - t), this } greyscale() { const e = this._rgb, n = t(0.3 * e.r + 0.59 * e.g + 0.11 * e.b) return (e.r = e.g = e.b = n), this } opaquer(t) { return (this._rgb.a *= 1 + t), this } negate() { const t = this._rgb return (t.r = 255 - t.r), (t.g = 255 - t.g), (t.b = 255 - t.b), this } lighten(t) { return k(this._rgb, 2, t), this } darken(t) { return k(this._rgb, 2, -t), this } saturate(t) { return k(this._rgb, 1, t), this } desaturate(t) { return k(this._rgb, 1, -t), this } rotate(t) { return ( (function (t, e) { var n = y(t) ;(n[0] = w(n[0] + e)), (n = p(n)), (t.r = n[0]), (t.g = n[1]), (t.b = n[2]) })(this._rgb, t), this ) } } class C extends Error {} class V extends C { constructor(t) { super(`Invalid DateTime: ${t.toMessage()}`) } } class F extends C { constructor(t) { super(`Invalid Interval: ${t.toMessage()}`) } } class I extends C { constructor(t) { super(`Invalid Duration: ${t.toMessage()}`) } } class L extends C {} class Z extends C { constructor(t) { super(`Invalid unit ${t}`) } } class $ extends C {} class _ extends C { constructor() { super("Zone is an abstract class") } } const A = "numeric", R = "short", z = "long", q = { year: A, month: A, day: A }, Y = { year: A, month: R, day: A }, j = { year: A, month: R, day: A, weekday: R }, H = { year: A, month: z, day: A }, U = { year: A, month: z, day: A, weekday: z }, W = { hour: A, minute: A }, P = { hour: A, minute: A, second: A }, J = { hour: A, minute: A, second: A, timeZoneName: R }, G = { hour: A, minute: A, second: A, timeZoneName: z }, X = { hour: A, minute: A, hourCycle: "h23" }, B = { hour: A, minute: A, second: A, hourCycle: "h23" }, Q = { hour: A, minute: A, second: A, hourCycle: "h23", timeZoneName: R }, K = { hour: A, minute: A, second: A, hourCycle: "h23", timeZoneName: z }, tt = { year: A, month: A, day: A, hour: A, minute: A }, et = { year: A, month: A, day: A, hour: A, minute: A, second: A }, nt = { year: A, month: R, day: A, hour: A, minute: A }, rt = { year: A, month: R, day: A, hour: A, minute: A, second: A }, st = { year: A, month: R, day: A, weekday: R, hour: A, minute: A }, it = { year: A, month: z, day: A, hour: A, minute: A, timeZoneName: R }, at = { year: A, month: z, day: A, hour: A, minute: A, second: A, timeZoneName: R }, ot = { year: A, month: z, day: A, weekday: z, hour: A, minute: A, timeZoneName: z }, ut = { year: A, month: z, day: A, weekday: z, hour: A, minute: A, second: A, timeZoneName: z } function lt(t) { return void 0 === t } function ct(t) { return "number" == typeof t } function ht(t) { return "number" == typeof t && t % 1 == 0 } function dt() { try { return "undefined" != typeof Intl && !!Intl.RelativeTimeFormat } catch (t) { return !1 } } function ft(t, e, n) { if (0 !== t.length) return t.reduce((t, r) => { const s = [e(r), r] return t && n(t[0], s[0]) === t[0] ? t : s }, null)[1] } function mt(t, e) { return Object.prototype.hasOwnProperty.call(t, e) } function yt(t, e, n) { return ht(t) && t >= e && t <= n } function gt(t, e = 2) { let n return (n = t < 0 ? "-" + ("" + -t).padStart(e, "0") : ("" + t).padStart(e, "0")), n } function pt(t) { return lt(t) || null === t || "" === t ? void 0 : parseInt(t, 10) } function wt(t) { return lt(t) || null === t || "" === t ? void 0 : parseFloat(t) } function bt(t) { if (!lt(t) && null !== t && "" !== t) { const e = 1e3 * parseFloat("0." + t) return Math.floor(e) } } function vt(t, e, n = !1) { const r = 10 ** e return (n ? Math.trunc : Math.round)(t * r) / r } function Ot(t) { return t % 4 == 0 && (t % 100 != 0 || t % 400 == 0) } function St(t) { return Ot(t) ? 366 : 365 } function Tt(t, e) { const n = (r = e - 1) - 12 * Math.floor(r / 12) + 1 var r return 2 === n ? Ot(t + (e - n) / 12) ? 29 : 28 : [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][n - 1] } function Mt(t) { let e = Date.UTC(t.year, t.month - 1, t.day, t.hour, t.minute, t.second, t.millisecond) return ( t.year < 100 && t.year >= 0 && ((e = new Date(e)), e.setUTCFullYear(e.getUTCFullYear() - 1900)), +e ) } function kt(t) { const e = (t + Math.floor(t / 4) - Math.floor(t / 100) + Math.floor(t / 400)) % 7, n = t - 1, r = (n + Math.floor(n / 4) - Math.floor(n / 100) + Math.floor(n / 400)) % 7 return 4 === e || 3 === r ? 53 : 52 } function Nt(t) { return t > 99 ? t : t > 60 ? 1900 + t : 2e3 + t } function Dt(t, e, n, r = null) { const s = new Date(t), i = { hourCycle: "h23", year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", } r && (i.timeZone = r) const a = { timeZoneName: e, ...i }, o = new Intl.DateTimeFormat(n, a) .formatToParts(s) .find((t) => "timezonename" === t.type.toLowerCase()) return o ? o.value : null } function Et(t, e) { let n = parseInt(t, 10) Number.isNaN(n) && (n = 0) const r = parseInt(e, 10) || 0 return 60 * n + (n < 0 || Object.is(n, -0) ? -r : r) } function xt(t) { const e = Number(t) if ("boolean" == typeof t || "" === t || Number.isNaN(e)) throw new $(`Invalid unit value ${t}`) return e } function Ct(t, e) { const n = {} for (const r in t) if (mt(t, r)) { const s = t[r] if (null == s) continue n[e(r)] = xt(s) } return n } function Vt(t, e) { const n = Math.trunc(Math.abs(t / 60)), r = Math.trunc(Math.abs(t % 60)), s = t >= 0 ? "+" : "-" switch (e) { case "short": return `${s}${gt(n, 2)}:${gt(r, 2)}` case "narrow": return `${s}${n}${r > 0 ? `:${r}` : ""}` case "techie": return `${s}${gt(n, 2)}${gt(r, 2)}` default: throw new RangeError(`Value format ${e} is out of range for property format`) } } function Ft(t) { return (function (t, e) { return ["hour", "minute", "second", "millisecond"].reduce((e, n) => ((e[n] = t[n]), e), {}) })(t) } const It = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/, Lt = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ], Zt = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], $t = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"] function _t(t) { switch (t) { case "narrow": return [...$t] case "short": return [...Zt] case "long": return [...Lt] 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 } } const At = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], Rt = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], zt = ["M", "T", "W", "T", "F", "S", "S"] function qt(t) { switch (t) { case "narrow": return [...zt] case "short": return [...Rt] case "long": return [...At] case "numeric": return ["1", "2", "3", "4", "5", "6", "7"] default: return null } } const Yt = ["AM", "PM"], jt = ["Before Christ", "Anno Domini"], Ht = ["BC", "AD"], Ut = ["B", "A"] function Wt(t) { switch (t) { case "narrow": return [...Ut] case "short": return [...Ht] case "long": return [...jt] default: return null } } function Pt(t, e) { let n = "" for (const r of t) r.literal ? (n += r.val) : (n += e(r.val)) return n } const Jt = { D: q, DD: Y, DDD: H, DDDD: U, t: W, tt: P, ttt: J, tttt: G, T: X, TT: B, TTT: Q, TTTT: K, f: tt, ff: nt, fff: it, ffff: ot, F: et, FF: rt, FFF: at, FFFF: ut, } class Gt { static create(t, e = {}) { return new Gt(t, e) } static parseFormat(t) { let e = null, n = "", r = !1 const s = [] for (let i = 0; i < t.length; i++) { const a = t.charAt(i) "'" === a ? (n.length > 0 && s.push({ literal: r, val: n }), (e = null), (n = ""), (r = !r)) : r || a === e ? (n += a) : (n.length > 0 && s.push({ literal: !1, val: n }), (n = a), (e = a)) } return n.length > 0 && s.push({ literal: r, val: n }), s } static macroTokenToFormatOpts(t) { return Jt[t] } constructor(t, e) { ;(this.opts = e), (this.loc = t), (this.systemLoc = null) } formatWithSystemDefault(t, e) { return ( null === this.systemLoc && (this.systemLoc = this.loc.redefaultToSystem()), this.systemLoc.dtFormatter(t, { ...this.opts, ...e }).format() ) } formatDateTime(t, e = {}) { return this.loc.dtFormatter(t, { ...this.opts, ...e }).format() } formatDateTimeParts(t, e = {}) { return this.loc.dtFormatter(t, { ...this.opts, ...e }).formatToParts() } resolvedOptions(t, e = {}) { return this.loc.dtFormatter(t, { ...this.opts, ...e }).resolvedOptions() } num(t, e = 0) { if (this.opts.forceSimple) return gt(t, e) const n = { ...this.opts } return e > 0 && (n.padTo = e), this.loc.numberFormatter(n).format(t) } formatDateTimeFromString(t, e) { const n = "en" === this.loc.listingMode(), r = this.loc.outputCalendar && "gregory" !== this.loc.outputCalendar, s = (e, n) => this.loc.extract(t, e, n), i = (e) => t.isOffsetFixed && 0 === t.offset && e.allowZ ? "Z" : t.isValid ? t.zone.formatOffset(t.ts, e.format) : "", a = (e, r) => n ? (function (t, e) { return _t(e)[t.month - 1] })(t, e) : s(r ? { month: e } : { month: e, day: "numeric" }, "month"), o = (e, r) => n ? (function (t, e) { return qt(e)[t.weekday - 1] })(t, e) : s(r ? { weekday: e } : { weekday: e, month: "long", day: "numeric" }, "weekday"), u = (e) => { const n = Gt.macroTokenToFormatOpts(e) return n ? this.formatWithSystemDefault(t, n) : e }, l = (e) => n ? (function (t, e) { return Wt(e)[t.year < 0 ? 0 : 1] })(t, e) : s({ era: e }, "era") return Pt(Gt.parseFormat(e), (e) => { switch (e) { case "S": return this.num(t.millisecond) case "u": case "SSS": return this.num(t.millisecond, 3) case "s": return this.num(t.second) case "ss": return this.num(t.second, 2) case "uu": return this.num(Math.floor(t.millisecond / 10), 2) case "uuu": return this.num(Math.floor(t.millisecond / 100)) case "m": return this.num(t.minute) case "mm": return this.num(t.minute, 2) case "h": return this.num(t.hour % 12 == 0 ? 12 : t.hour % 12) case "hh": return this.num(t.hour % 12 == 0 ? 12 : t.hour % 12, 2) case "H": return this.num(t.hour) case "HH": return this.num(t.hour, 2) case "Z": return i({ format: "narrow", allowZ: this.opts.allowZ }) case "ZZ": return i({ format: "short", allowZ: this.opts.allowZ }) case "ZZZ": return i({ format: "techie", allowZ: this.opts.allowZ }) case "ZZZZ": return t.zone.offsetName(t.ts, { format: "short", locale: this.loc.locale }) case "ZZZZZ": return t.zone.offsetName(t.ts, { format: "long", locale: this.loc.locale }) case "z": return t.zoneName case "a": return n ? (function (t) { return Yt[t.hour < 12 ? 0 : 1] })(t) : s({ hour: "numeric", hourCycle: "h12" }, "dayperiod") case "d": return r ? s({ day: "numeric" }, "day") : this.num(t.day) case "dd": return r ? s({ day: "2-digit" }, "day") : this.num(t.day, 2) case "c": case "E": return this.num(t.weekday) case "ccc": return o("short", !0) case "cccc": return o("long", !0) case "ccccc": return o("narrow", !0) case "EEE": return o("short", !1) case "EEEE": return o("long", !1) case "EEEEE": return o("narrow", !1) case "L": return r ? s({ month: "numeric", day: "numeric" }, "month") : this.num(t.month) case "LL": return r ? s({ month: "2-digit", day: "numeric" }, "month") : this.num(t.month, 2) case "LLL": return a("short", !0) case "LLLL": return a("long", !0) case "LLLLL": return a("narrow", !0) case "M": return r ? s({ month: "numeric" }, "month") : this.num(t.month) case "MM": return r ? s({ month: "2-digit" }, "month") : this.num(t.month, 2) case "MMM": return a("short", !1) case "MMMM": return a("long", !1) case "MMMMM": return a("narrow", !1) case "y": return r ? s({ year: "numeric" }, "year") : this.num(t.year) case "yy": return r ? s({ year: "2-digit" }, "year") : this.num(t.year.toString().slice(-2), 2) case "yyyy": return r ? s({ year: "numeric" }, "year") : this.num(t.year, 4) case "yyyyyy": return r ? s({ year: "numeric" }, "year") : this.num(t.year, 6) case "G": return l("short") case "GG": return l("long") case "GGGGG": return l("narrow") case "kk": return this.num(t.weekYear.toString().slice(-2), 2) case "kkkk": return this.num(t.weekYear, 4) case "W": return this.num(t.weekNumber) case "WW": return this.num(t.weekNumber, 2) case "o": return this.num(t.ordinal) case "ooo": return this.num(t.ordinal, 3) case "q": return this.num(t.quarter) case "qq": return this.num(t.quarter, 2) case "X": return this.num(Math.floor(t.ts / 1e3)) case "x": return this.num(t.ts) default: return u(e) } }) } formatDurationFromString(t, e) { const n = (t) => { switch (t[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 } }, r = Gt.parseFormat(e), s = r.reduce((t, { literal: e, val: n }) => (e ? t : t.concat(n)), []) return Pt( r, ((t) => (e) => { const r = n(e) return r ? this.num(t.get(r), e.length) : e })(t.shiftTo(...s.map(n).filter((t) => t))) ) } } class Xt { constructor(t, e) { ;(this.reason = t), (this.explanation = e) } toMessage() { return this.explanation ? `${this.reason}: ${this.explanation}` : this.reason } } class Bt { get type() { throw new _() } get name() { throw new _() } get ianaName() { return this.name } get isUniversal() { throw new _() } offsetName(t, e) { throw new _() } formatOffset(t, e) { throw new _() } offset(t) { throw new _() } equals(t) { throw new _() } get isValid() { throw new _() } } let Qt = null class Kt extends Bt { static get instance() { return null === Qt && (Qt = new Kt()), Qt } get type() { return "system" } get name() { return new Intl.DateTimeFormat().resolvedOptions().timeZone } get isUniversal() { return !1 } offsetName(t, { format: e, locale: n }) { return Dt(t, e, n) } formatOffset(t, e) { return Vt(this.offset(t), e) } offset(t) { return -new Date(t).getTimezoneOffset() } equals(t) { return "system" === t.type } get isValid() { return !0 } } let te = {} const ee = { year: 0, month: 1, day: 2, era: 3, hour: 4, minute: 5, second: 6 } let ne = {} class re extends Bt { static create(t) { return ne[t] || (ne[t] = new re(t)), ne[t] } static resetCache() { ;(ne = {}), (te = {}) } static isValidSpecifier(t) { return this.isValidZone(t) } static isValidZone(t) { if (!t) return !1 try { return new Intl.DateTimeFormat("en-US", { timeZone: t }).format(), !0 } catch (t) { return !1 } } constructor(t) { super(), (this.zoneName = t), (this.valid = re.isValidZone(t)) } get type() { return "iana" } get name() { return this.zoneName } get isUniversal() { return !1 } offsetName(t, { format: e, locale: n }) { return Dt(t, e, n, this.name) } formatOffset(t, e) { return Vt(this.offset(t), e) } offset(t) { const e = new Date(t) if (isNaN(e)) return NaN const n = ((r = this.name), te[r] || (te[r] = new Intl.DateTimeFormat("en-US", { hour12: !1, timeZone: r, year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", era: "short", })), te[r]) var r let [s, i, a, o, u, l, c] = n.formatToParts ? (function (t, e) { const n = t.formatToParts(e), r = [] for (let t = 0; t < n.length; t++) { const { type: e, value: s } = n[t], i = ee[e] "era" === e ? (r[i] = s) : lt(i) || (r[i] = parseInt(s, 10)) } return r })(n, e) : (function (t, e) { const n = t.format(e).replace(/\u200E/g, ""), r = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n), [, s, i, a, o, u, l, c] = r return [a, s, i, o, u, l, c] })(n, e) "BC" === o && (s = 1 - Math.abs(s)) let h = +e const d = h % 1e3 return ( (h -= d >= 0 ? d : 1e3 + d), (Mt({ year: s, month: i, day: a, hour: 24 === u ? 0 : u, minute: l, second: c, millisecond: 0, }) - h) / 6e4 ) } equals(t) { return "iana" === t.type && t.name === this.name } get isValid() { return this.valid } } let se = null class ie extends Bt { static get utcInstance() { return null === se && (se = new ie(0)), se } static instance(t) { return 0 === t ? ie.utcInstance : new ie(t) } static parseSpecifier(t) { if (t) { const e = t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i) if (e) return new ie(Et(e[1], e[2])) } return null } constructor(t) { super(), (this.fixed = t) } get type() { return "fixed" } get name() { return 0 === this.fixed ? "UTC" : `UTC${Vt(this.fixed, "narrow")}` } get ianaName() { return 0 === this.fixed ? "Etc/UTC" : `Etc/GMT${Vt(-this.fixed, "narrow")}` } offsetName() { return this.name } formatOffset(t, e) { return Vt(this.fixed, e) } get isUniversal() { return !0 } offset() { return this.fixed } equals(t) { return "fixed" === t.type && t.fixed === this.fixed } get isValid() { return !0 } } class ae extends Bt { constructor(t) { super(), (this.zoneName = t) } get type() { return "invalid" } get name() { return this.zoneName } get isUniversal() { return !1 } offsetName() { return null } formatOffset() { return "" } offset() { return NaN } equals() { return !1 } get isValid() { return !1 } } function oe(t, e) { if (lt(t) || null === t) return e if (t instanceof Bt) return t if ("string" == typeof t) { const n = t.toLowerCase() return "default" === n ? e : "local" === n || "system" === n ? Kt.instance : "utc" === n || "gmt" === n ? ie.utcInstance : ie.parseSpecifier(n) || re.create(t) } return ct(t) ? ie.instance(t) : "object" == typeof t && t.offset && "number" == typeof t.offset ? t : new ae(t) } let ue, le = () => Date.now(), ce = "system", he = null, de = null, fe = null class me { static get now() { return le } static set now(t) { le = t } static set defaultZone(t) { ce = t } static get defaultZone() { return oe(ce, Kt.instance) } static get defaultLocale() { return he } static set defaultLocale(t) { he = t } static get defaultNumberingSystem() { return de } static set defaultNumberingSystem(t) { de = t } static get defaultOutputCalendar() { return fe } static set defaultOutputCalendar(t) { fe = t } static get throwOnInvalid() { return ue } static set throwOnInvalid(t) { ue = t } static resetCaches() { ke.resetCache(), re.resetCache() } } let ye = {}, ge = {} function pe(t, e = {}) { const n = JSON.stringify([t, e]) let r = ge[n] return r || ((r = new Intl.DateTimeFormat(t, e)), (ge[n] = r)), r } let we = {}, be = {}, ve = null function Oe(t, e, n, r, s) { const i = t.listingMode(n) return "error" === i ? null : "en" === i ? r(e) : s(e) } class Se { constructor(t, e, n) { ;(this.padTo = n.padTo || 0), (this.floor = n.floor || !1) const { padTo: r, floor: s, ...i } = n if (!e || Object.keys(i).length > 0) { const e = { useGrouping: !1, ...n } n.padTo > 0 && (e.minimumIntegerDigits = n.padTo), (this.inf = (function (t, e = {}) { const n = JSON.stringify([t, e]) let r = we[n] return r || ((r = new Intl.NumberFormat(t, e)), (we[n] = r)), r })(t, e)) } } format(t) { if (this.inf) { const e = this.floor ? Math.floor(t) : t return this.inf.format(e) } return gt(this.floor ? Math.floor(t) : vt(t, 3), this.padTo) } } class Te { constructor(t, e, n) { let r if (((this.opts = n), t.zone.isUniversal)) { const e = (t.offset / 60) * -1, s = e >= 0 ? `Etc/GMT+${e}` : `Etc/GMT${e}` 0 !== t.offset && re.create(s).valid ? ((r = s), (this.dt = t)) : ((r = "UTC"), n.timeZoneName ? (this.dt = t) : (this.dt = 0 === t.offset ? t : Sr.fromMillis(t.ts + 60 * t.offset * 1e3))) } else "system" === t.zone.type ? (this.dt = t) : ((this.dt = t), (r = t.zone.name)) const s = { ...this.opts } r && (s.timeZone = r), (this.dtf = pe(e, s)) } format() { return this.dtf.format(this.dt.toJSDate()) } formatToParts() { return this.dtf.formatToParts(this.dt.toJSDate()) } resolvedOptions() { return this.dtf.resolvedOptions() } } class Me { constructor(t, e, n) { ;(this.opts = { style: "long", ...n }), !e && dt() && (this.rtf = (function (t, e = {}) { const { base: n, ...r } = e, s = JSON.stringify([t, r]) let i = be[s] return i || ((i = new Intl.RelativeTimeFormat(t, e)), (be[s] = i)), i })(t, n)) } format(t, e) { return this.rtf ? this.rtf.format(t, e) : (function (t, e, n = "always", r = !1) { const s = { 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."], }, i = -1 === ["hours", "minutes", "seconds"].indexOf(t) if ("auto" === n && i) { const n = "days" === t switch (e) { case 1: return n ? "tomorrow" : `next ${s[t][0]}` case -1: return n ? "yesterday" : `last ${s[t][0]}` case 0: return n ? "today" : `this ${s[t][0]}` } } const a = Object.is(e, -0) || e < 0, o = Math.abs(e), u = 1 === o, l = s[t], c = r ? (u ? l[1] : l[2] || l[1]) : u ? s[t][0] : t return a ? `${o} ${c} ago` : `in ${o} ${c}` })(e, t, this.opts.numeric, "long" !== this.opts.style) } formatToParts(t, e) { return this.rtf ? this.rtf.formatToParts(t, e) : [] } } class ke { static fromOpts(t) { return ke.create(t.locale, t.numberingSystem, t.outputCalendar, t.defaultToEN) } static create(t, e, n, r = !1) { const s = t || me.defaultLocale, i = s || (r ? "en-US" : ve || ((ve = new Intl.DateTimeFormat().resolvedOptions().locale), ve)), a = e || me.defaultNumberingSystem, o = n || me.defaultOutputCalendar return new ke(i, a, o, s) } static resetCache() { ;(ve = null), (ge = {}), (we = {}), (be = {}) } static fromObject({ locale: t, numberingSystem: e, outputCalendar: n } = {}) { return ke.create(t, e, n) } constructor(t, e, n, r) { const [s, i, a] = (function (t) { const e = t.indexOf("-u-") if (-1 === e) return [t] { let n const r = t.substring(0, e) try { n = pe(t).resolvedOptions() } catch (t) { n = pe(r).resolvedOptions() } const { numberingSystem: s, calendar: i } = n return [r, s, i] } })(t) ;(this.locale = s), (this.numberingSystem = e || i || null), (this.outputCalendar = n || a || null), (this.intl = (function (t, e, n) { return n || e ? ((t += "-u"), n && (t += `-ca-${n}`), e && (t += `-nu-${e}`), t) : t })(this.locale, this.numberingSystem, this.outputCalendar)), (this.weekdaysCache = { format: {}, standalone: {} }), (this.monthsCache = { format: {}, standalone: {} }), (this.meridiemCache = null), (this.eraCache = {}), (this.specifiedLocale = r), (this.fastNumbersCached = null) } get fastNumbers() { var t return ( null == this.fastNumbersCached && (this.fastNumbersCached = (!(t = this).numberingSystem || "latn" === t.numberingSystem) && ("latn" === t.numberingSystem || !t.locale || t.locale.startsWith("en") || "latn" === new Intl.DateTimeFormat(t.intl).resolvedOptions().numberingSystem)), this.fastNumbersCached ) } listingMode() { const t = this.isEnglish(), e = !( (null !== this.numberingSystem && "latn" !== this.numberingSystem) || (null !== this.outputCalendar && "gregory" !== this.outputCalendar) ) return t && e ? "en" : "intl" } clone(t) { return t && 0 !== Object.getOwnPropertyNames(t).length ? ke.create( t.locale || this.specifiedLocale, t.numberingSystem || this.numberingSystem, t.outputCalendar || this.outputCalendar, t.defaultToEN || !1 ) : this } redefaultToEN(t = {}) { return this.clone({ ...t, defaultToEN: !0 }) } redefaultToSystem(t = {}) { return this.clone({ ...t, defaultToEN: !1 }) } months(t, e = !1, n = !0) { return Oe(this, t, n, _t, () => { const n = e ? { month: t, day: "numeric" } : { month: t }, r = e ? "format" : "standalone" return ( this.monthsCache[r][t] || (this.monthsCache[r][t] = (function (t) { const e = [] for (let n = 1; n <= 12; n++) { const r = Sr.utc(2016, n, 1) e.push(t(r)) } return e })((t) => this.extract(t, n, "month"))), this.monthsCache[r][t] ) }) } weekdays(t, e = !1, n = !0) { return Oe(this, t, n, qt, () => { const n = e ? { weekday: t, year: "numeric", month: "long", day: "numeric" } : { weekday: t }, r = e ? "format" : "standalone" return ( this.weekdaysCache[r][t] || (this.weekdaysCache[r][t] = (function (t) { const e = [] for (let n = 1; n <= 7; n++) { const r = Sr.utc(2016, 11, 13 + n) e.push(t(r)) } return e })((t) => this.extract(t, n, "weekday"))), this.weekdaysCache[r][t] ) }) } meridiems(t = !0) { return Oe( this, void 0, t, () => Yt, () => { if (!this.meridiemCache) { const t = { hour: "numeric", hourCycle: "h12" } this.meridiemCache = [Sr.utc(2016, 11, 13, 9), Sr.utc(2016, 11, 13, 19)].map((e) => this.extract(e, t, "dayperiod") ) } return this.meridiemCache } ) } eras(t, e = !0) { return Oe(this, t, e, Wt, () => { const e = { era: t } return ( this.eraCache[t] || (this.eraCache[t] = [Sr.utc(-40, 1, 1), Sr.utc(2017, 1, 1)].map((t) => this.extract(t, e, "era") )), this.eraCache[t] ) }) } extract(t, e, n) { const r = this.dtFormatter(t, e) .formatToParts() .find((t) => t.type.toLowerCase() === n) return r ? r.value : null } numberFormatter(t = {}) { return new Se(this.intl, t.forceSimple || this.fastNumbers, t) } dtFormatter(t, e = {}) { return new Te(t, this.intl, e) } relFormatter(t = {}) { return new Me(this.intl, this.isEnglish(), t) } listFormatter(t = {}) { return (function (t, e = {}) { const n = JSON.stringify([t, e]) let r = ye[n] return r || ((r = new Intl.ListFormat(t, e)), (ye[n] = r)), r })(this.intl, t) } isEnglish() { return ( "en" === this.locale || "en-us" === this.locale.toLowerCase() || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us") ) } equals(t) { return ( this.locale === t.locale && this.numberingSystem === t.numberingSystem && this.outputCalendar === t.outputCalendar ) } } function Ne(...t) { const e = t.reduce((t, e) => t + e.source, "") return RegExp(`^${e}$`) } function De(...t) { return (e) => t .reduce( ([t, n, r], s) => { const [i, a, o] = s(e, r) return [{ ...t, ...i }, a || n, o] }, [{}, null, 1] ) .slice(0, 2) } function Ee(t, ...e) { if (null == t) return [null, null] for (const [n, r] of e) { const e = n.exec(t) if (e) return r(e) } return [null, null] } function xe(...t) { return (e, n) => { const r = {} let s for (s = 0; s < t.length; s++) r[t[s]] = pt(e[n + s]) return [r, null, n + s] } } const Ce = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, Ve = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/, Fe = RegExp(`${Ve.source}(?:${Ce.source}?(?:\\[(${It.source})\\])?)?`), Ie = RegExp(`(?:T${Fe.source})?`), Le = xe("weekYear", "weekNumber", "weekDay"), Ze = xe("year", "ordinal"), $e = RegExp(`${Ve.source} ?(?:${Ce.source}|(${It.source}))?`), _e = RegExp(`(?: ${$e.source})?`) function Ae(t, e, n) { const r = t[e] return lt(r) ? n : pt(r) } function Re(t, e) { return [ { hours: Ae(t, e, 0), minutes: Ae(t, e + 1, 0), seconds: Ae(t, e + 2, 0), milliseconds: bt(t[e + 3]), }, null, e + 4, ] } function ze(t, e) { const n = !t[e] && !t[e + 1], r = Et(t[e + 1], t[e + 2]) return [{}, n ? null : ie.instance(r), e + 3] } function qe(t, e) { return [{}, t[e] ? re.create(t[e]) : null, e + 1] } const Ye = RegExp(`^T?${Ve.source}$`), je = /^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/ function He(t) { const [e, n, r, s, i, a, o, u, l] = t, c = "-" === e[0], h = u && "-" === u[0], d = (t, e = !1) => (void 0 !== t && (e || (t && c)) ? -t : t) return [ { years: d(wt(n)), months: d(wt(r)), weeks: d(wt(s)), days: d(wt(i)), hours: d(wt(a)), minutes: d(wt(o)), seconds: d(wt(u), "-0" === u), milliseconds: d(bt(l), h), }, ] } const Ue = { GMT: 0, EDT: -240, EST: -300, CDT: -300, CST: -360, MDT: -360, MST: -420, PDT: -420, PST: -480, } function We(t, e, n, r, s, i, a) { const o = { year: 2 === e.length ? Nt(pt(e)) : pt(e), month: Zt.indexOf(n) + 1, day: pt(r), hour: pt(s), minute: pt(i), } return ( a && (o.second = pt(a)), t && (o.weekday = t.length > 3 ? At.indexOf(t) + 1 : Rt.indexOf(t) + 1), o ) } const Pe = /^(?:(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 Je(t) { const [, e, n, r, s, i, a, o, u, l, c, h] = t, d = We(e, s, r, n, i, a, o) let f return (f = u ? Ue[u] : l ? 0 : Et(c, h)), [d, new ie(f)] } const Ge = /^(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$/, Xe = /^(Monday|Tuesday|Wednesday|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$/, Be = /^(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 Qe(t) { const [, e, n, r, s, i, a, o] = t return [We(e, s, r, n, i, a, o), ie.utcInstance] } function Ke(t) { const [, e, n, r, s, i, a, o] = t return [We(e, o, n, r, s, i, a), ie.utcInstance] } const tn = Ne(/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, Ie), en = Ne(/(\d{4})-?W(\d\d)(?:-?(\d))?/, Ie), nn = Ne(/(\d{4})-?(\d{3})/, Ie), rn = Ne(Fe), sn = De( function (t, e) { return [{ year: Ae(t, e), month: Ae(t, e + 1, 1), day: Ae(t, e + 2, 1) }, null, e + 3] }, Re, ze, qe ), an = De(Le, Re, ze, qe), on = De(Ze, Re, ze, qe), un = De(Re, ze, qe), ln = De(Re), cn = Ne(/(\d{4})-(\d\d)-(\d\d)/, _e), hn = Ne($e), dn = De(Re, ze, qe), fn = { weeks: { days: 7, hours: 168, minutes: 10080, seconds: 604800, milliseconds: 6048e5 }, days: { hours: 24, minutes: 1440, seconds: 86400, milliseconds: 864e5 }, hours: { minutes: 60, seconds: 3600, milliseconds: 36e5 }, minutes: { seconds: 60, milliseconds: 6e4 }, seconds: { milliseconds: 1e3 }, }, mn = { years: { quarters: 4, months: 12, weeks: 52, days: 365, hours: 8760, minutes: 525600, seconds: 31536e3, milliseconds: 31536e6, }, quarters: { months: 3, weeks: 13, days: 91, hours: 2184, minutes: 131040, seconds: 7862400, milliseconds: 78624e5, }, months: { weeks: 4, days: 30, hours: 720, minutes: 43200, seconds: 2592e3, milliseconds: 2592e6, }, ...fn, }, yn = { years: { quarters: 4, months: 12, weeks: 52.1775, days: 365.2425, hours: 8765.82, minutes: 525949.2, seconds: 525949.2 * 60, milliseconds: 525949.2 * 60 * 1e3, }, quarters: { months: 3, weeks: 13.044375, days: 91.310625, hours: 2191.455, minutes: 131487.3, seconds: (525949.2 * 60) / 4, milliseconds: 7889237999.999999, }, months: { weeks: 4.3481250000000005, days: 30.436875, hours: 730.485, minutes: 43829.1, seconds: 2629746, milliseconds: 2629746e3, }, ...fn, }, gn = [ "years", "quarters", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", ], pn = gn.slice(0).reverse() function wn(t, e, n = !1) { const r = { values: n ? e.values : { ...t.values, ...(e.values || {}) }, loc: t.loc.clone(e.loc), conversionAccuracy: e.conversionAccuracy || t.conversionAccuracy, } return new vn(r) } function bn(t, e, n, r, s) { const i = t[s][n], a = e[n] / i, o = Math.sign(a) !== Math.sign(r[s]) && 0 !== r[s] && Math.abs(a) <= 1 ? (function (t) { return t < 0 ? Math.floor(t) : Math.ceil(t) })(a) : Math.trunc(a) ;(r[s] += o), (e[n] -= o * i) } class vn { constructor(t) { const e = "longterm" === t.conversionAccuracy || !1 ;(this.values = t.values), (this.loc = t.loc || ke.create()), (this.conversionAccuracy = e ? "longterm" : "casual"), (this.invalid = t.invalid || null), (this.matrix = e ? yn : mn), (this.isLuxonDuration = !0) } static fromMillis(t, e) { return vn.fromObject({ milliseconds: t }, e) } static fromObject(t, e = {}) { if (null == t || "object" != typeof t) throw new $( "Duration.fromObject: argument expected to be an object, got " + (null === t ? "null" : typeof t) ) return new vn({ values: Ct(t, vn.normalizeUnit), loc: ke.fromObject(e), conversionAccuracy: e.conversionAccuracy, }) } static fromDurationLike(t) { if (ct(t)) return vn.fromMillis(t) if (vn.isDuration(t)) return t if ("object" == typeof t) return vn.fromObject(t) throw new $(`Unknown duration argument ${t} of type ${typeof t}`) } static fromISO(t, e) { const [n] = (function (t) { return Ee(t, [je, He]) })(t) return n ? vn.fromObject(n, e) : vn.invalid("unparsable", `the input "${t}" can't be parsed as ISO 8601`) } static fromISOTime(t, e) { const [n] = (function (t) { return Ee(t, [Ye, ln]) })(t) return n ? vn.fromObject(n, e) : vn.invalid("unparsable", `the input "${t}" can't be parsed as ISO 8601`) } static invalid(t, e = null) { if (!t) throw new $("need to specify a reason the Duration is invalid") const n = t instanceof Xt ? t : new Xt(t, e) if (me.throwOnInvalid) throw new I(n) return new vn({ invalid: n }) } static normalizeUnit(t) { const e = { 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", }[t ? t.toLowerCase() : t] if (!e) throw new Z(t) return e } static isDuration(t) { return (t && t.isLuxonDuration) || !1 } get locale() { return this.isValid ? this.loc.locale : null } get numberingSystem() { return this.isValid ? this.loc.numberingSystem : null } toFormat(t, e = {}) { const n = { ...e, floor: !1 !== e.round && !1 !== e.floor } return this.isValid ? Gt.create(this.loc, n).formatDurationFromString(this, t) : "Invalid Duration" } toHuman(t = {}) { const e = gn .map((e) => { const n = this.values[e] return lt(n) ? null : this.loc .numberFormatter({ style: "unit", unitDisplay: "long", ...t, unit: e.slice(0, -1) }) .format(n) }) .filter((t) => t) return this.loc .listFormatter({ type: "conjunction", style: t.listStyle || "narrow", ...t }) .format(e) } toObject() { return this.isValid ? { ...this.values } : {} } toISO() { if (!this.isValid) return null let t = "P" return ( 0 !== this.years && (t += this.years + "Y"), (0 === this.months && 0 === this.quarters) || (t += this.months + 3 * this.quarters + "M"), 0 !== this.weeks && (t += this.weeks + "W"), 0 !== this.days && (t += this.days + "D"), (0 === this.hours && 0 === this.minutes && 0 === this.seconds && 0 === this.milliseconds) || (t += "T"), 0 !== this.hours && (t += this.hours + "H"), 0 !== this.minutes && (t += this.minutes + "M"), (0 === this.seconds && 0 === this.milliseconds) || (t += vt(this.seconds + this.milliseconds / 1e3, 3) + "S"), "P" === t && (t += "T0S"), t ) } toISOTime(t = {}) { if (!this.isValid) return null const e = this.toMillis() if (e < 0 || e >= 864e5) return null t = { suppressMilliseconds: !1, suppressSeconds: !1, includePrefix: !1, format: "extended", ...t, } const n = this.shiftTo("hours", "minutes", "seconds", "milliseconds") let r = "basic" === t.format ? "hhmm" : "hh:mm" ;(t.suppressSeconds && 0 === n.seconds && 0 === n.milliseconds) || ((r += "basic" === t.format ? "ss" : ":ss"), (t.suppressMilliseconds && 0 === n.milliseconds) || (r += ".SSS")) let s = n.toFormat(r) return t.includePrefix && (s = "T" + s), s } toJSON() { return this.toISO() } toString() { return this.toISO() } toMillis() { return this.as("milliseconds") } valueOf() { return this.toMillis() } plus(t) { if (!this.isValid) return this const e = vn.fromDurationLike(t), n = {} for (const t of gn) (mt(e.values, t) || mt(this.values, t)) && (n[t] = e.get(t) + this.get(t)) return wn(this, { values: n }, !0) } minus(t) { if (!this.isValid) return this const e = vn.fromDurationLike(t) return this.plus(e.negate()) } mapUnits(t) { if (!this.isValid) return this const e = {} for (const n of Object.keys(this.values)) e[n] = xt(t(this.values[n], n)) return wn(this, { values: e }, !0) } get(t) { return this[vn.normalizeUnit(t)] } set(t) { return this.isValid ? wn(this, { values: { ...this.values, ...Ct(t, vn.normalizeUnit) } }) : this } reconfigure({ locale: t, numberingSystem: e, conversionAccuracy: n } = {}) { const r = { loc: this.loc.clone({ locale: t, numberingSystem: e }) } return n && (r.conversionAccuracy = n), wn(this, r) } as(t) { return this.isValid ? this.shiftTo(t).get(t) : NaN } normalize() { if (!this.isValid) return this const t = this.toObject() return ( (function (t, e) { pn.reduce((n, r) => (lt(e[r]) ? n : (n && bn(t, e, n, e, r), r)), null) })(this.matrix, t), wn(this, { values: t }, !0) ) } shiftTo(...t) { if (!this.isValid) return this if (0 === t.length) return this t = t.map((t) => vn.normalizeUnit(t)) const e = {}, n = {}, r = this.toObject() let s for (const i of gn) if (t.indexOf(i) >= 0) { s = i let t = 0 for (const e in n) (t += this.matrix[e][i] * n[e]), (n[e] = 0) ct(r[i]) && (t += r[i]) const a = Math.trunc(t) ;(e[i] = a), (n[i] = (1e3 * t - 1e3 * a) / 1e3) for (const t in r) gn.indexOf(t) > gn.indexOf(i) && bn(this.matrix, r, t, e, i) } else ct(r[i]) && (n[i] = r[i]) for (const t in n) 0 !== n[t] && (e[s] += t === s ? n[t] : n[t] / this.matrix[s][t]) return wn(this, { values: e }, !0).normalize() } negate() { if (!this.isValid) return this const t = {} for (const e of Object.keys(this.values)) t[e] = 0 === this.values[e] ? 0 : -this.values[e] return wn(this, { values: t }, !0) } get years() { return this.isValid ? this.values.years || 0 : NaN } get quarters() { return this.isValid ? this.values.quarters || 0 : NaN } get months() { return this.isValid ? this.values.months || 0 : NaN } get weeks() { return this.isValid ? this.values.weeks || 0 : NaN } get days() { return this.isValid ? this.values.days || 0 : NaN } get hours() { return this.isValid ? this.values.hours || 0 : NaN } get minutes() { return this.isValid ? this.values.minutes || 0 : NaN } get seconds() { return this.isValid ? this.values.seconds || 0 : NaN } get milliseconds() { return this.isValid ? this.values.milliseconds || 0 : NaN } get isValid() { return null === this.invalid } get invalidReason() { return this.invalid ? this.invalid.reason : null } get invalidExplanation() { return this.invalid ? this.invalid.explanation : null } equals(t) { if (!this.isValid || !t.isValid) return !1 if (!this.loc.equals(t.loc)) return !1 for (const r of gn) if ( ((e = this.values[r]), (n = t.values[r]), !(void 0 === e || 0 === e ? void 0 === n || 0 === n : e === n)) ) return !1 var e, n return !0 } } const On = "Invalid Interval" class Sn { constructor(t) { ;(this.s = t.start), (this.e = t.end), (this.invalid = t.invalid || null), (this.isLuxonInterval = !0) } static invalid(t, e = null) { if (!t) throw new $("need to specify a reason the Interval is invalid") const n = t instanceof Xt ? t : new Xt(t, e) if (me.throwOnInvalid) throw new F(n) return new Sn({ invalid: n }) } static fromDateTimes(t, e) { const n = Tr(t), r = Tr(e), s = (function (t, e) { return t && t.isValid ? e && e.isValid ? e < t ? Sn.invalid( "end before start", `The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}` ) : null : Sn.invalid("missing or invalid end") : Sn.invalid("missing or invalid start") })(n, r) return null == s ? new Sn({ start: n, end: r }) : s } static after(t, e) { const n = vn.fromDurationLike(e), r = Tr(t) return Sn.fromDateTimes(r, r.plus(n)) } static before(t, e) { const n = vn.fromDurationLike(e), r = Tr(t) return Sn.fromDateTimes(r.minus(n), r) } static fromISO(t, e) { const [n, r] = (t || "").split("/", 2) if (n && r) { let t, s, i, a try { ;(t = Sr.fromISO(n, e)), (s = t.isValid) } catch (r) { s = !1 } try { ;(i = Sr.fromISO(r, e)), (a = i.isValid) } catch (r) { a = !1 } if (s && a) return Sn.fromDateTimes(t, i) if (s) { const n = vn.fromISO(r, e) if (n.isValid) return Sn.after(t, n) } else if (a) { const t = vn.fromISO(n, e) if (t.isValid) return Sn.before(i, t) } } return Sn.invalid("unparsable", `the input "${t}" can't be parsed as ISO 8601`) } static isInterval(t) { return (t && t.isLuxonInterval) || !1 } get start() { return this.isValid ? this.s : null } get end() { return this.isValid ? this.e : null } get isValid() { return null === this.invalidReason } get invalidReason() { return this.invalid ? this.invalid.reason : null } get invalidExplanation() { return this.invalid ? this.invalid.explanation : null } length(t = "milliseconds") { return this.isValid ? this.toDuration(t).get(t) : NaN } count(t = "milliseconds") { if (!this.isValid) return NaN const e = this.start.startOf(t), n = this.end.startOf(t) return Math.floor(n.diff(e, t).get(t)) + 1 } hasSame(t) { return !!this.isValid && (this.isEmpty() || this.e.minus(1).hasSame(this.s, t)) } isEmpty() { return this.s.valueOf() === this.e.valueOf() } isAfter(t) { return !!this.isValid && this.s > t } isBefore(t) { return !!this.isValid && this.e <= t } contains(t) { return !!this.isValid && this.s <= t && this.e > t } set({ start: t, end: e } = {}) { return this.isValid ? Sn.fromDateTimes(t || this.s, e || this.e) : this } splitAt(...t) { if (!this.isValid) return [] const e = t .map(Tr) .filter((t) => this.contains(t)) .sort(), n = [] let { s: r } = this, s = 0 for (; r < this.e; ) { const t = e[s] || this.e, i = +t > +this.e ? this.e : t n.push(Sn.fromDateTimes(r, i)), (r = i), (s += 1) } return n } splitBy(t) { const e = vn.fromDurationLike(t) if (!this.isValid || !e.isValid || 0 === e.as("milliseconds")) return [] let n, { s: r } = this, s = 1 const i = [] for (; r < this.e; ) { const t = this.start.plus(e.mapUnits((t) => t * s)) ;(n = +t > +this.e ? this.e : t), i.push(Sn.fromDateTimes(r, n)), (r = n), (s += 1) } return i } divideEqually(t) { return this.isValid ? this.splitBy(this.length() / t).slice(0, t) : [] } overlaps(t) { return this.e > t.s && this.s < t.e } abutsStart(t) { return !!this.isValid && +this.e == +t.s } abutsEnd(t) { return !!this.isValid && +t.e == +this.s } engulfs(t) { return !!this.isValid && this.s <= t.s && this.e >= t.e } equals(t) { return !(!this.isValid || !t.isValid) && this.s.equals(t.s) && this.e.equals(t.e) } intersection(t) { if (!this.isValid) return this const e = this.s > t.s ? this.s : t.s, n = this.e < t.e ? this.e : t.e return e >= n ? null : Sn.fromDateTimes(e, n) } union(t) { if (!this.isValid) return this const e = this.s < t.s ? this.s : t.s, n = this.e > t.e ? this.e : t.e return Sn.fromDateTimes(e, n) } static merge(t) { const [e, n] = t .sort((t, e) => t.s - e.s) .reduce( ([t, e], n) => e ? (e.overlaps(n) || e.abutsStart(n) ? [t, e.union(n)] : [t.concat([e]), n]) : [t, n], [[], null] ) return n && e.push(n), e } static xor(t) { let e = null, n = 0 const r = [], s = t.map((t) => [ { time: t.s, type: "s" }, { time: t.e, type: "e" }, ]), i = Array.prototype.concat(...s).sort((t, e) => t.time - e.time) for (const t of i) (n += "s" === t.type ? 1 : -1), 1 === n ? (e = t.time) : (e && +e != +t.time && r.push(Sn.fromDateTimes(e, t.time)), (e = null)) return Sn.merge(r) } difference(...t) { return Sn.xor([this].concat(t)) .map((t) => this.intersection(t)) .filter((t) => t && !t.isEmpty()) } toString() { return this.isValid ? `[${this.s.toISO()} – ${this.e.toISO()})` : On } toISO(t) { return this.isValid ? `${this.s.toISO(t)}/${this.e.toISO(t)}` : On } toISODate() { return this.isValid ? `${this.s.toISODate()}/${this.e.toISODate()}` : On } toISOTime(t) { return this.isValid ? `${this.s.toISOTime(t)}/${this.e.toISOTime(t)}` : On } toFormat(t, { separator: e = " – " } = {}) { return this.isValid ? `${this.s.toFormat(t)}${e}${this.e.toFormat(t)}` : On } toDuration(t, e) { return this.isValid ? this.e.diff(this.s, t, e) : vn.invalid(this.invalidReason) } mapEndpoints(t) { return Sn.fromDateTimes(t(this.s), t(this.e)) } } class Tn { static hasDST(t = me.defaultZone) { const e = Sr.now().setZone(t).set({ month: 12 }) return !t.isUniversal && e.offset !== e.set({ month: 6 }).offset } static isValidIANAZone(t) { return re.isValidZone(t) } static normalizeZone(t) { return oe(t, me.defaultZone) } static months( t = "long", { locale: e = null, numberingSystem: n = null, locObj: r = null, outputCalendar: s = "gregory", } = {} ) { return (r || ke.create(e, n, s)).months(t) } static monthsFormat( t = "long", { locale: e = null, numberingSystem: n = null, locObj: r = null, outputCalendar: s = "gregory", } = {} ) { return (r || ke.create(e, n, s)).months(t, !0) } static weekdays( t = "long", { locale: e = null, numberingSystem: n = null, locObj: r = null } = {} ) { return (r || ke.create(e, n, null)).weekdays(t) } static weekdaysFormat( t = "long", { locale: e = null, numberingSystem: n = null, locObj: r = null } = {} ) { return (r || ke.create(e, n, null)).weekdays(t, !0) } static meridiems({ locale: t = null } = {}) { return ke.create(t).meridiems() } static eras(t = "short", { locale: e = null } = {}) { return ke.create(e, null, "gregory").eras(t) } static features() { return { relative: dt() } } } function Mn(t, e) { const n = (t) => t.toUTC(0, { keepLocalTime: !0 }).startOf("day").valueOf(), r = n(e) - n(t) return Math.floor(vn.fromMillis(r).as("days")) } const kn = { arab: "[٠-٩]", arabext: "[۰-۹]", bali: "[᭐-᭙]", beng: "[০-৯]", deva: "[०-९]", fullwide: "[0-9]", gujr: "[૦-૯]", hanidec: "[〇|一|二|三|四|五|六|七|八|九]", khmr: "[០-៩]", knda: "[೦-೯]", laoo: "[໐-໙]", limb: "[᥆-᥏]", mlym: "[൦-൯]", mong: "[᠐-᠙]", mymr: "[၀-၉]", orya: "[୦-୯]", tamldec: "[௦-௯]", telu: "[౦-౯]", thai: "[๐-๙]", tibt: "[༠-༩]", latn: "\\d", }, Nn = { 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], }, Dn = kn.hanidec.replace(/[\[|\]]/g, "").split("") function En({ numberingSystem: t }, e = "") { return new RegExp(`${kn[t || "latn"]}${e}`) } function xn(t, e = (t) => t) { return { regex: t, deser: ([t]) => e( (function (t) { let e = parseInt(t, 10) if (isNaN(e)) { e = "" for (let n = 0; n < t.length; n++) { const r = t.charCodeAt(n) if (-1 !== t[n].search(kn.hanidec)) e += Dn.indexOf(t[n]) else for (const t in Nn) { const [n, s] = Nn[t] r >= n && r <= s && (e += r - n) } } return parseInt(e, 10) } return e })(t) ), } } const Cn = `[ ${String.fromCharCode(160)}]`, Vn = new RegExp(Cn, "g") function Fn(t) { return t.replace(/\./g, "\\.?").replace(Vn, Cn) } function In(t) { return t.replace(/\./g, "").replace(Vn, " ").toLowerCase() } function Ln(t, e) { return null === t ? null : { regex: RegExp(t.map(Fn).join("|")), deser: ([n]) => t.findIndex((t) => In(n) === In(t)) + e, } } function Zn(t, e) { return { regex: t, deser: ([, t, e]) => Et(t, e), groups: e } } function $n(t) { return { regex: t, deser: ([t]) => t } } const _n = { 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" }, timeZoneName: { long: "ZZZZZ", short: "ZZZ" }, } let An = null function Rn(t, e, n) { const r = (function (t, e) { return Array.prototype.concat( ...t.map((t) => (function (t, e) { if (t.literal) return t const n = zn(Gt.macroTokenToFormatOpts(t.val), e) return null == n || n.includes(void 0) ? t : n })(t, e) ) ) })(Gt.parseFormat(n), t), s = r.map((e) => (function (t, e) { const n = En(e), r = En(e, "{2}"), s = En(e, "{3}"), i = En(e, "{4}"), a = En(e, "{6}"), o = En(e, "{1,2}"), u = En(e, "{1,3}"), l = En(e, "{1,6}"), c = En(e, "{1,9}"), h = En(e, "{2,4}"), d = En(e, "{4,6}"), f = (t) => { return { regex: RegExp(((e = t.val), e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"))), deser: ([t]) => t, literal: !0, } var e }, m = ((m) => { if (t.literal) return f(m) switch (m.val) { case "G": return Ln(e.eras("short", !1), 0) case "GG": return Ln(e.eras("long", !1), 0) case "y": return xn(l) case "yy": case "kk": return xn(h, Nt) case "yyyy": case "kkkk": return xn(i) case "yyyyy": return xn(d) case "yyyyyy": return xn(a) case "M": case "L": case "d": case "H": case "h": case "m": case "q": case "s": case "W": return xn(o) case "MM": case "LL": case "dd": case "HH": case "hh": case "mm": case "qq": case "ss": case "WW": return xn(r) case "MMM": return Ln(e.months("short", !0, !1), 1) case "MMMM": return Ln(e.months("long", !0, !1), 1) case "LLL": return Ln(e.months("short", !1, !1), 1) case "LLLL": return Ln(e.months("long", !1, !1), 1) case "o": case "S": return xn(u) case "ooo": case "SSS": return xn(s) case "u": return $n(c) case "uu": return $n(o) case "uuu": case "E": case "c": return xn(n) case "a": return Ln(e.meridiems(), 0) case "EEE": return Ln(e.weekdays("short", !1, !1), 1) case "EEEE": return Ln(e.weekdays("long", !1, !1), 1) case "ccc": return Ln(e.weekdays("short", !0, !1), 1) case "cccc": return Ln(e.weekdays("long", !0, !1), 1) case "Z": case "ZZ": return Zn(new RegExp(`([+-]${o.source})(?::(${r.source}))?`), 2) case "ZZZ": return Zn(new RegExp(`([+-]${o.source})(${r.source})?`), 2) case "z": return $n(/[a-z_+-/]{1,256}?/i) default: return f(m) } })(t) || { invalidReason: "missing Intl.DateTimeFormat.formatToParts support" } return (m.token = t), m })(e, t) ), i = s.find((t) => t.invalidReason) if (i) return { input: e, tokens: r, invalidReason: i.invalidReason } { const [t, n] = (function (t) { return [`^${t.map((t) => t.regex).reduce((t, e) => `${t}(${e.source})`, "")}$`, t] })(s), i = RegExp(t, "i"), [a, o] = (function (t, e, n) { const r = t.match(e) if (r) { const t = {} let e = 1 for (const s in n) if (mt(n, s)) { const i = n[s], a = i.groups ? i.groups + 1 : 1 !i.literal && i.token && (t[i.token.val[0]] = i.deser(r.slice(e, e + a))), (e += a) } return [r, t] } return [r, {}] })(e, i, n), [u, l, c] = o ? (function (t) { let e, n = null return ( lt(t.z) || (n = re.create(t.z)), lt(t.Z) || (n || (n = new ie(t.Z)), (e = t.Z)), lt(t.q) || (t.M = 3 * (t.q - 1) + 1), lt(t.h) || (t.h < 12 && 1 === t.a ? (t.h += 12) : 12 === t.h && 0 === t.a && (t.h = 0)), 0 === t.G && t.y && (t.y = -t.y), lt(t.u) || (t.S = bt(t.u)), [ Object.keys(t).reduce((e, n) => { const r = ((t) => { switch (t) { 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 } })(n) return r && (e[r] = t[n]), e }, {}), n, e, ] ) })(o) : [null, null, void 0] if (mt(o, "a") && mt(o, "H")) throw new L("Can't include meridiem when specifying 24-hour format") return { input: e, tokens: r, regex: i, rawMatches: a, matches: o, result: u, zone: l, specificOffset: c, } } } function zn(t, e) { return t ? Gt.create(e, t) .formatDateTimeParts((An || (An = Sr.fromMillis(1555555555555)), An)) .map((e) => (function (t, e, n) { const { type: r, value: s } = t if ("literal" === r) return { literal: !0, val: s } const i = n[r] let a = _n[r] return "object" == typeof a && (a = a[i]), a ? { literal: !1, val: a } : void 0 })(e, 0, t) ) : null } const qn = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], Yn = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335] function jn(t, e) { return new Xt( "unit out of range", `you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid` ) } function Hn(t, e, n) { const r = new Date(Date.UTC(t, e - 1, n)) t < 100 && t >= 0 && r.setUTCFullYear(r.getUTCFullYear() - 1900) const s = r.getUTCDay() return 0 === s ? 7 : s } function Un(t, e, n) { return n + (Ot(t) ? Yn : qn)[e - 1] } function Wn(t, e) { const n = Ot(t) ? Yn : qn, r = n.findIndex((t) => t < e) return { month: r + 1, day: e - n[r] } } function Pn(t) { const { year: e, month: n, day: r } = t, s = Un(e, n, r), i = Hn(e, n, r) let a, o = Math.floor((s - i + 10) / 7) return ( o < 1 ? ((a = e - 1), (o = kt(a))) : o > kt(e) ? ((a = e + 1), (o = 1)) : (a = e), { weekYear: a, weekNumber: o, weekday: i, ...Ft(t) } ) } function Jn(t) { const { weekYear: e, weekNumber: n, weekday: r } = t, s = Hn(e, 1, 4), i = St(e) let a, o = 7 * n + r - s - 3 o < 1 ? ((a = e - 1), (o += St(a))) : o > i ? ((a = e + 1), (o -= St(e))) : (a = e) const { month: u, day: l } = Wn(a, o) return { year: a, month: u, day: l, ...Ft(t) } } function Gn(t) { const { year: e, month: n, day: r } = t return { year: e, ordinal: Un(e, n, r), ...Ft(t) } } function Xn(t) { const { year: e, ordinal: n } = t, { month: r, day: s } = Wn(e, n) return { year: e, month: r, day: s, ...Ft(t) } } function Bn(t) { const e = ht(t.year), n = yt(t.month, 1, 12), r = yt(t.day, 1, Tt(t.year, t.month)) return e ? (n ? !r && jn("day", t.day) : jn("month", t.month)) : jn("year", t.year) } function Qn(t) { const { hour: e, minute: n, second: r, millisecond: s } = t, i = yt(e, 0, 23) || (24 === e && 0 === n && 0 === r && 0 === s), a = yt(n, 0, 59), o = yt(r, 0, 59), u = yt(s, 0, 999) return i ? a ? o ? !u && jn("millisecond", s) : jn("second", r) : jn("minute", n) : jn("hour", e) } const Kn = "Invalid DateTime", tr = 864e13 function er(t) { return new Xt("unsupported zone", `the zone "${t.name}" is not supported`) } function nr(t) { return null === t.weekData && (t.weekData = Pn(t.c)), t.weekData } function rr(t, e) { const n = { ts: t.ts, zone: t.zone, c: t.c, o: t.o, loc: t.loc, invalid: t.invalid } return new Sr({ ...n, ...e, old: n }) } function sr(t, e, n) { let r = t - 60 * e * 1e3 const s = n.offset(r) if (e === s) return [r, e] r -= 60 * (s - e) * 1e3 const i = n.offset(r) return s === i ? [r, s] : [t - 60 * Math.min(s, i) * 1e3, Math.max(s, i)] } function ir(t, e) { const n = new Date((t += 60 * e * 1e3)) return { year: n.getUTCFullYear(), month: n.getUTCMonth() + 1, day: n.getUTCDate(), hour: n.getUTCHours(), minute: n.getUTCMinutes(), second: n.getUTCSeconds(), millisecond: n.getUTCMilliseconds(), } } function ar(t, e, n) { return sr(Mt(t), e, n) } function or(t, e) { const n = t.o, r = t.c.year + Math.trunc(e.years), s = t.c.month + Math.trunc(e.months) + 3 * Math.trunc(e.quarters), i = { ...t.c, year: r, month: s, day: Math.min(t.c.day, Tt(r, s)) + Math.trunc(e.days) + 7 * Math.trunc(e.weeks), }, a = vn .fromObject({ years: e.years - Math.trunc(e.years), quarters: e.quarters - Math.trunc(e.quarters), months: e.months - Math.trunc(e.months), weeks: e.weeks - Math.trunc(e.weeks), days: e.days - Math.trunc(e.days), hours: e.hours, minutes: e.minutes, seconds: e.seconds, milliseconds: e.milliseconds, }) .as("milliseconds"), o = Mt(i) let [u, l] = sr(o, n, t.zone) return 0 !== a && ((u += a), (l = t.zone.offset(u))), { ts: u, o: l } } function ur(t, e, n, r, s, i) { const { setZone: a, zone: o } = n if (t && 0 !== Object.keys(t).length) { const r = e || o, s = Sr.fromObject(t, { ...n, zone: r, specificOffset: i }) return a ? s : s.setZone(o) } return Sr.invalid(new Xt("unparsable", `the input "${s}" can't be parsed as ${r}`)) } function lr(t, e, n = !0) { return t.isValid ? Gt.create(ke.create("en-US"), { allowZ: n, forceSimple: !0 }).formatDateTimeFromString(t, e) : null } function cr(t, e) { const n = t.c.year > 9999 || t.c.year < 0 let r = "" return ( n && t.c.year >= 0 && (r += "+"), (r += gt(t.c.year, n ? 6 : 4)), e ? ((r += "-"), (r += gt(t.c.month)), (r += "-"), (r += gt(t.c.day))) : ((r += gt(t.c.month)), (r += gt(t.c.day))), r ) } function hr(t, e, n, r, s, i) { let a = gt(t.c.hour) return ( e ? ((a += ":"), (a += gt(t.c.minute)), (0 === t.c.second && n) || (a += ":")) : (a += gt(t.c.minute)), (0 === t.c.second && n) || ((a += gt(t.c.second)), (0 === t.c.millisecond && r) || ((a += "."), (a += gt(t.c.millisecond, 3)))), s && (t.isOffsetFixed && 0 === t.offset && !i ? (a += "Z") : t.o < 0 ? ((a += "-"), (a += gt(Math.trunc(-t.o / 60))), (a += ":"), (a += gt(Math.trunc(-t.o % 60)))) : ((a += "+"), (a += gt(Math.trunc(t.o / 60))), (a += ":"), (a += gt(Math.trunc(t.o % 60))))), i && (a += "[" + t.zone.ianaName + "]"), a ) } const dr = { month: 1, day: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }, fr = { weekNumber: 1, weekday: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }, mr = { ordinal: 1, hour: 0, minute: 0, second: 0, millisecond: 0 }, yr = ["year", "month", "day", "hour", "minute", "second", "millisecond"], gr = ["weekYear", "weekNumber", "weekday", "hour", "minute", "second", "millisecond"], pr = ["year", "ordinal", "hour", "minute", "second", "millisecond"] function wr(t) { const e = { 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", }[t.toLowerCase()] if (!e) throw new Z(t) return e } function br(t, e) { const n = oe(e.zone, me.defaultZone), r = ke.fromObject(e), s = me.now() let i, a if (lt(t.year)) i = s else { for (const e of yr) lt(t[e]) && (t[e] = dr[e]) const e = Bn(t) || Qn(t) if (e) return Sr.invalid(e) const r = n.offset(s) ;[i, a] = ar(t, r, n) } return new Sr({ ts: i, zone: n, loc: r, o: a }) } function vr(t, e, n) { const r = !!lt(n.round) || n.round, s = (t, s) => ( (t = vt(t, r || n.calendary ? 0 : 2, !0)), e.loc.clone(n).relFormatter(n).format(t, s) ), i = (r) => n.calendary ? e.hasSame(t, r) ? 0 : e.startOf(r).diff(t.startOf(r), r).get(r) : e.diff(t, r).get(r) if (n.unit) return s(i(n.unit), n.unit) for (const t of n.units) { const e = i(t) if (Math.abs(e) >= 1) return s(e, t) } return s(t > e ? -0 : 0, n.units[n.units.length - 1]) } function Or(t) { let e, n = {} return ( t.length > 0 && "object" == typeof t[t.length - 1] ? ((n = t[t.length - 1]), (e = Array.from(t).slice(0, t.length - 1))) : (e = Array.from(t)), [n, e] ) } class Sr { constructor(t) { const e = t.zone || me.defaultZone let n = t.invalid || (Number.isNaN(t.ts) ? new Xt("invalid input") : null) || (e.isValid ? null : er(e)) this.ts = lt(t.ts) ? me.now() : t.ts let r = null, s = null if (!n) if (t.old && t.old.ts === this.ts && t.old.zone.equals(e)) [r, s] = [t.old.c, t.old.o] else { const t = e.offset(this.ts) ;(r = ir(this.ts, t)), (n = Number.isNaN(r.year) ? new Xt("invalid input") : null), (r = n ? null : r), (s = n ? null : t) } ;(this._zone = e), (this.loc = t.loc || ke.create()), (this.invalid = n), (this.weekData = null), (this.c = r), (this.o = s), (this.isLuxonDateTime = !0) } static now() { return new Sr({}) } static local() { const [t, e] = Or(arguments), [n, r, s, i, a, o, u] = e return br({ year: n, month: r, day: s, hour: i, minute: a, second: o, millisecond: u }, t) } static utc() { const [t, e] = Or(arguments), [n, r, s, i, a, o, u] = e return ( (t.zone = ie.utcInstance), br({ year: n, month: r, day: s, hour: i, minute: a, second: o, millisecond: u }, t) ) } static fromJSDate(t, e = {}) { const n = ((r = t), "[object Date]" === Object.prototype.toString.call(r) ? t.valueOf() : NaN) var r if (Number.isNaN(n)) return Sr.invalid("invalid input") const s = oe(e.zone, me.defaultZone) return s.isValid ? new Sr({ ts: n, zone: s, loc: ke.fromObject(e) }) : Sr.invalid(er(s)) } static fromMillis(t, e = {}) { if (ct(t)) return t < -tr || t > tr ? Sr.invalid("Timestamp out of range") : new Sr({ ts: t, zone: oe(e.zone, me.defaultZone), loc: ke.fromObject(e) }) throw new $( `fromMillis requires a numerical input, but received a ${typeof t} with value ${t}` ) } static fromSeconds(t, e = {}) { if (ct(t)) return new Sr({ ts: 1e3 * t, zone: oe(e.zone, me.defaultZone), loc: ke.fromObject(e) }) throw new $("fromSeconds requires a numerical input") } static fromObject(t, e = {}) { t = t || {} const n = oe(e.zone, me.defaultZone) if (!n.isValid) return Sr.invalid(er(n)) const r = me.now(), s = lt(e.specificOffset) ? n.offset(r) : e.specificOffset, i = Ct(t, wr), a = !lt(i.ordinal), o = !lt(i.year), u = !lt(i.month) || !lt(i.day), l = o || u, c = i.weekYear || i.weekNumber, h = ke.fromObject(e) if ((l || a) && c) throw new L("Can't mix weekYear/weekNumber units with year/month/day or ordinals") if (u && a) throw new L("Can't mix ordinal dates with month/day") const d = c || (i.weekday && !l) let f, m, y = ir(r, s) d ? ((f = gr), (m = fr), (y = Pn(y))) : a ? ((f = pr), (m = mr), (y = Gn(y))) : ((f = yr), (m = dr)) let g = !1 for (const t of f) lt(i[t]) ? (i[t] = g ? m[t] : y[t]) : (g = !0) const p = d ? (function (t) { const e = ht(t.weekYear), n = yt(t.weekNumber, 1, kt(t.weekYear)), r = yt(t.weekday, 1, 7) return e ? n ? !r && jn("weekday", t.weekday) : jn("week", t.week) : jn("weekYear", t.weekYear) })(i) : a ? (function (t) { const e = ht(t.year), n = yt(t.ordinal, 1, St(t.year)) return e ? !n && jn("ordinal", t.ordinal) : jn("year", t.year) })(i) : Bn(i), w = p || Qn(i) if (w) return Sr.invalid(w) const b = d ? Jn(i) : a ? Xn(i) : i, [v, O] = ar(b, s, n), S = new Sr({ ts: v, zone: n, o: O, loc: h }) return i.weekday && l && t.weekday !== S.weekday ? Sr.invalid( "mismatched weekday", `you can't specify both a weekday of ${i.weekday} and a date of ${S.toISO()}` ) : S } static fromISO(t, e = {}) { const [n, r] = (function (t) { return Ee(t, [tn, sn], [en, an], [nn, on], [rn, un]) })(t) return ur(n, r, e, "ISO 8601", t) } static fromRFC2822(t, e = {}) { const [n, r] = (function (t) { return Ee( (function (t) { return t .replace(/\([^)]*\)|[\n\t]/g, " ") .replace(/(\s\s+)/g, " ") .trim() })(t), [Pe, Je] ) })(t) return ur(n, r, e, "RFC 2822", t) } static fromHTTP(t, e = {}) { const [n, r] = (function (t) { return Ee(t, [Ge, Qe], [Xe, Qe], [Be, Ke]) })(t) return ur(n, r, e, "HTTP", e) } static fromFormat(t, e, n = {}) { if (lt(t) || lt(e)) throw new $("fromFormat requires an input string and a format") const { locale: r = null, numberingSystem: s = null } = n, i = ke.fromOpts({ locale: r, numberingSystem: s, defaultToEN: !0 }), [a, o, u, l] = (function (t, e, n) { const { result: r, zone: s, specificOffset: i, invalidReason: a } = Rn(t, e, n) return [r, s, i, a] })(i, t, e) return l ? Sr.invalid(l) : ur(a, o, n, `format ${e}`, t, u) } static fromString(t, e, n = {}) { return Sr.fromFormat(t, e, n) } static fromSQL(t, e = {}) { const [n, r] = (function (t) { return Ee(t, [cn, sn], [hn, dn]) })(t) return ur(n, r, e, "SQL", t) } static invalid(t, e = null) { if (!t) throw new $("need to specify a reason the DateTime is invalid") const n = t instanceof Xt ? t : new Xt(t, e) if (me.throwOnInvalid) throw new V(n) return new Sr({ invalid: n }) } static isDateTime(t) { return (t && t.isLuxonDateTime) || !1 } static parseFormatForOpts(t, e = {}) { const n = zn(t, ke.fromObject(e)) return n ? n.map((t) => (t ? t.val : null)).join("") : null } get(t) { return this[t] } get isValid() { return null === this.invalid } get invalidReason() { return this.invalid ? this.invalid.reason : null } get invalidExplanation() { return this.invalid ? this.invalid.explanation : null } get locale() { return this.isValid ? this.loc.locale : null } get numberingSystem() { return this.isValid ? this.loc.numberingSystem : null } get outputCalendar() { return this.isValid ? this.loc.outputCalendar : null } get zone() { return this._zone } get zoneName() { return this.isValid ? this.zone.name : null } get year() { return this.isValid ? this.c.year : NaN } get quarter() { return this.isValid ? Math.ceil(this.c.month / 3) : NaN } get month() { return this.isValid ? this.c.month : NaN } get day() { return this.isValid ? this.c.day : NaN } get hour() { return this.isValid ? this.c.hour : NaN } get minute() { return this.isValid ? this.c.minute : NaN } get second() { return this.isValid ? this.c.second : NaN } get millisecond() { return this.isValid ? this.c.millisecond : NaN } get weekYear() { return this.isValid ? nr(this).weekYear : NaN } get weekNumber() { return this.isValid ? nr(this).weekNumber : NaN } get weekday() { return this.isValid ? nr(this).weekday : NaN } get ordinal() { return this.isValid ? Gn(this.c).ordinal : NaN } get monthShort() { return this.isValid ? Tn.months("short", { locObj: this.loc })[this.month - 1] : null } get monthLong() { return this.isValid ? Tn.months("long", { locObj: this.loc })[this.month - 1] : null } get weekdayShort() { return this.isValid ? Tn.weekdays("short", { locObj: this.loc })[this.weekday - 1] : null } get weekdayLong() { return this.isValid ? Tn.weekdays("long", { locObj: this.loc })[this.weekday - 1] : null } get offset() { return this.isValid ? +this.o : NaN } get offsetNameShort() { return this.isValid ? this.zone.offsetName(this.ts, { format: "short", locale: this.locale }) : null } get offsetNameLong() { return this.isValid ? this.zone.offsetName(this.ts, { format: "long", locale: this.locale }) : null } get isOffsetFixed() { return this.isValid ? this.zone.isUniversal : null } get isInDST() { return ( !this.isOffsetFixed && (this.offset > this.set({ month: 1, day: 1 }).offset || this.offset > this.set({ month: 5 }).offset) ) } get isInLeapYear() { return Ot(this.year) } get daysInMonth() { return Tt(this.year, this.month) } get daysInYear() { return this.isValid ? St(this.year) : NaN } get weeksInWeekYear() { return this.isValid ? kt(this.weekYear) : NaN } resolvedLocaleOptions(t = {}) { const { locale: e, numberingSystem: n, calendar: r, } = Gt.create(this.loc.clone(t), t).resolvedOptions(this) return { locale: e, numberingSystem: n, outputCalendar: r } } toUTC(t = 0, e = {}) { return this.setZone(ie.instance(t), e) } toLocal() { return this.setZone(me.defaultZone) } setZone(t, { keepLocalTime: e = !1, keepCalendarTime: n = !1 } = {}) { if ((t = oe(t, me.defaultZone)).equals(this.zone)) return this if (t.isValid) { let r = this.ts if (e || n) { const e = t.offset(this.ts), n = this.toObject() ;[r] = ar(n, e, t) } return rr(this, { ts: r, zone: t }) } return Sr.invalid(er(t)) } reconfigure({ locale: t, numberingSystem: e, outputCalendar: n } = {}) { return rr(this, { loc: this.loc.clone({ locale: t, numberingSystem: e, outputCalendar: n }) }) } setLocale(t) { return this.reconfigure({ locale: t }) } set(t) { if (!this.isValid) return this const e = Ct(t, wr), n = !lt(e.weekYear) || !lt(e.weekNumber) || !lt(e.weekday), r = !lt(e.ordinal), s = !lt(e.year), i = !lt(e.month) || !lt(e.day), a = s || i, o = e.weekYear || e.weekNumber if ((a || r) && o) throw new L("Can't mix weekYear/weekNumber units with year/month/day or ordinals") if (i && r) throw new L("Can't mix ordinal dates with month/day") let u n ? (u = Jn({ ...Pn(this.c), ...e })) : lt(e.ordinal) ? ((u = { ...this.toObject(), ...e }), lt(e.day) && (u.day = Math.min(Tt(u.year, u.month), u.day))) : (u = Xn({ ...Gn(this.c), ...e })) const [l, c] = ar(u, this.o, this.zone) return rr(this, { ts: l, o: c }) } plus(t) { return this.isValid ? rr(this, or(this, vn.fromDurationLike(t))) : this } minus(t) { return this.isValid ? rr(this, or(this, vn.fromDurationLike(t).negate())) : this } startOf(t) { if (!this.isValid) return this const e = {}, n = vn.normalizeUnit(t) switch (n) { case "years": e.month = 1 case "quarters": case "months": e.day = 1 case "weeks": case "days": e.hour = 0 case "hours": e.minute = 0 case "minutes": e.second = 0 case "seconds": e.millisecond = 0 } if (("weeks" === n && (e.weekday = 1), "quarters" === n)) { const t = Math.ceil(this.month / 3) e.month = 3 * (t - 1) + 1 } return this.set(e) } endOf(t) { return this.isValid ? this.plus({ [t]: 1 }) .startOf(t) .minus(1) : this } toFormat(t, e = {}) { return this.isValid ? Gt.create(this.loc.redefaultToEN(e)).formatDateTimeFromString(this, t) : Kn } toLocaleString(t = q, e = {}) { return this.isValid ? Gt.create(this.loc.clone(e), t).formatDateTime(this) : Kn } toLocaleParts(t = {}) { return this.isValid ? Gt.create(this.loc.clone(t), t).formatDateTimeParts(this) : [] } toISO({ format: t = "extended", suppressSeconds: e = !1, suppressMilliseconds: n = !1, includeOffset: r = !0, extendedZone: s = !1, } = {}) { if (!this.isValid) return null const i = "extended" === t let a = cr(this, i) return (a += "T"), (a += hr(this, i, e, n, r, s)), a } toISODate({ format: t = "extended" } = {}) { return this.isValid ? cr(this, "extended" === t) : null } toISOWeekDate() { return lr(this, "kkkk-'W'WW-c") } toISOTime({ suppressMilliseconds: t = !1, suppressSeconds: e = !1, includeOffset: n = !0, includePrefix: r = !1, extendedZone: s = !1, format: i = "extended", } = {}) { return this.isValid ? (r ? "T" : "") + hr(this, "extended" === i, e, t, n, s) : null } toRFC2822() { return lr(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", !1) } toHTTP() { return lr(this.toUTC(), "EEE, dd LLL yyyy HH:mm:ss 'GMT'") } toSQLDate() { return this.isValid ? cr(this, !0) : null } toSQLTime({ includeOffset: t = !0, includeZone: e = !1, includeOffsetSpace: n = !0 } = {}) { let r = "HH:mm:ss.SSS" return (e || t) && (n && (r += " "), e ? (r += "z") : t && (r += "ZZ")), lr(this, r, !0) } toSQL(t = {}) { return this.isValid ? `${this.toSQLDate()} ${this.toSQLTime(t)}` : null } toString() { return this.isValid ? this.toISO() : Kn } valueOf() { return this.toMillis() } toMillis() { return this.isValid ? this.ts : NaN } toSeconds() { return this.isValid ? this.ts / 1e3 : NaN } toUnixInteger() { return this.isValid ? Math.floor(this.ts / 1e3) : NaN } toJSON() { return this.toISO() } toBSON() { return this.toJSDate() } toObject(t = {}) { if (!this.isValid) return {} const e = { ...this.c } return ( t.includeConfig && ((e.outputCalendar = this.outputCalendar), (e.numberingSystem = this.loc.numberingSystem), (e.locale = this.loc.locale)), e ) } toJSDate() { return new Date(this.isValid ? this.ts : NaN) } diff(t, e = "milliseconds", n = {}) { if (!this.isValid || !t.isValid) return vn.invalid("created by diffing an invalid DateTime") const r = { locale: this.locale, numberingSystem: this.numberingSystem, ...n }, s = ((o = e), Array.isArray(o) ? o : [o]).map(vn.normalizeUnit), i = t.valueOf() > this.valueOf(), a = (function (t, e, n, r) { let [s, i, a, o] = (function (t, e, n) { const r = [ ["years", (t, e) => e.year - t.year], ["quarters", (t, e) => e.quarter - t.quarter], ["months", (t, e) => e.month - t.month + 12 * (e.year - t.year)], [ "weeks", (t, e) => { const n = Mn(t, e) return (n - (n % 7)) / 7 }, ], ["days", Mn], ], s = {} let i, a for (const [o, u] of r) if (n.indexOf(o) >= 0) { i = o let n = u(t, e) ;(a = t.plus({ [o]: n })), a > e ? ((t = t.plus({ [o]: n - 1 })), (n -= 1)) : (t = a), (s[o] = n) } return [t, s, a, i] })(t, e, n) const u = e - s, l = n.filter((t) => ["hours", "minutes", "seconds", "milliseconds"].indexOf(t) >= 0) 0 === l.length && (a < e && (a = s.plus({ [o]: 1 })), a !== s && (i[o] = (i[o] || 0) + u / (a - s))) const c = vn.fromObject(i, r) return l.length > 0 ? vn .fromMillis(u, r) .shiftTo(...l) .plus(c) : c })(i ? this : t, i ? t : this, s, r) var o return i ? a.negate() : a } diffNow(t = "milliseconds", e = {}) { return this.diff(Sr.now(), t, e) } until(t) { return this.isValid ? Sn.fromDateTimes(this, t) : this } hasSame(t, e) { if (!this.isValid) return !1 const n = t.valueOf(), r = this.setZone(t.zone, { keepLocalTime: !0 }) return r.startOf(e) <= n && n <= r.endOf(e) } equals(t) { return ( this.isValid && t.isValid && this.valueOf() === t.valueOf() && this.zone.equals(t.zone) && this.loc.equals(t.loc) ) } toRelative(t = {}) { if (!this.isValid) return null const e = t.base || Sr.fromObject({}, { zone: this.zone }), n = t.padding ? (this < e ? -t.padding : t.padding) : 0 let r = ["years", "months", "days", "hours", "minutes", "seconds"], s = t.unit return ( Array.isArray(t.unit) && ((r = t.unit), (s = void 0)), vr(e, this.plus(n), { ...t, numeric: "always", units: r, unit: s }) ) } toRelativeCalendar(t = {}) { return this.isValid ? vr(t.base || Sr.fromObject({}, { zone: this.zone }), this, { ...t, numeric: "auto", units: ["years", "months", "days"], calendary: !0, }) : null } static min(...t) { if (!t.every(Sr.isDateTime)) throw new $("min requires all arguments be DateTimes") return ft(t, (t) => t.valueOf(), Math.min) } static max(...t) { if (!t.every(Sr.isDateTime)) throw new $("max requires all arguments be DateTimes") return ft(t, (t) => t.valueOf(), Math.max) } static fromFormatExplain(t, e, n = {}) { const { locale: r = null, numberingSystem: s = null } = n return Rn(ke.fromOpts({ locale: r, numberingSystem: s, defaultToEN: !0 }), t, e) } static fromStringExplain(t, e, n = {}) { return Sr.fromFormatExplain(t, e, n) } static get DATE_SHORT() { return q } static get DATE_MED() { return Y } static get DATE_MED_WITH_WEEKDAY() { return j } static get DATE_FULL() { return H } static get DATE_HUGE() { return U } static get TIME_SIMPLE() { return W } static get TIME_WITH_SECONDS() { return P } static get TIME_WITH_SHORT_OFFSET() { return J } static get TIME_WITH_LONG_OFFSET() { return G } static get TIME_24_SIMPLE() { return X } static get TIME_24_WITH_SECONDS() { return B } static get TIME_24_WITH_SHORT_OFFSET() { return Q } static get TIME_24_WITH_LONG_OFFSET() { return K } static get DATETIME_SHORT() { return tt } static get DATETIME_SHORT_WITH_SECONDS() { return et } static get DATETIME_MED() { return nt } static get DATETIME_MED_WITH_SECONDS() { return rt } static get DATETIME_MED_WITH_WEEKDAY() { return st } static get DATETIME_FULL() { return it } static get DATETIME_FULL_WITH_SECONDS() { return at } static get DATETIME_HUGE() { return ot } static get DATETIME_HUGE_WITH_SECONDS() { return ut } } function Tr(t) { if (Sr.isDateTime(t)) return t if (t && t.valueOf && ct(t.valueOf())) return Sr.fromJSDate(t) if (t && "object" == typeof t) return Sr.fromObject(t) throw new $(`Unknown datetime argument: ${t}, of type ${typeof t}`) } const Mr = (() => { const t = { MONTHS: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", ], COLORS: [ "#4dc9f6", "#f67019", "#f53794", "#537bc4", "#acc236", "#166a8f", "#00a950", "#58595b", "#8549ba", ], CHART_COLORS: { red: "rgb(255, 99, 132)", orange: "rgb(255, 159, 64)", yellow: "rgb(255, 205, 86)", green: "rgb(75, 192, 192)", blue: "rgb(54, 162, 235)", purple: "rgb(153, 102, 255)", grey: "rgb(201, 203, 207)", }, } class e { constructor(t) { ;(this._seed = Date.now()), (this.MONTHS = t.MONTHS), (this.COLORS = t.COLORS), (this.CHART_COLORS = t.CHART_COLORS), (this.NAMED_COLORS = [ this.CHART_COLORS.red, this.CHART_COLORS.orange, this.CHART_COLORS.yellow, this.CHART_COLORS.green, this.CHART_COLORS.blue, this.CHART_COLORS.purple, this.CHART_COLORS.grey, ]) } valueOrDefault(t, e) { return void 0 === t ? e : t } srand(t) { this._seed = t } rand(t, e) { return ( (t = this.valueOrDefault(t, 0)), (e = this.valueOrDefault(e, 0)), (this._seed = (9301 * this._seed + 49297) % 233280), t + (this._seed / 233280) * (e - t) ) } numbers(t) { const e = t || {}, n = this.valueOrDefault(e.min, 0), r = this.valueOrDefault(e.max, 100), s = this.valueOrDefault(e.from, []), i = this.valueOrDefault(e.count, 8), a = this.valueOrDefault(e.decimals, 8), o = this.valueOrDefault(e.continuity, 1), u = Math.pow(10, a) || 0, l = [] let c, h for (c = 0; c < i; ++c) (h = (s[c] || 0) + this.rand(n, r)), this.rand() <= o ? l.push(Math.round(u * h) / u) : l.push(null) return l } points(t) { const e = this.numbers(t), n = this.numbers(t) return e.map((t, e) => ({ x: t, y: n[e] })) } bubbles(t) { return this.points(t).map((e) => ((e.r = this.rand(t.rmin, t.rmax)), e)) } labels(t) { const e = t || {}, n = e.min || 0, r = e.max || 100, s = (r - n) / (e.count || 8), i = e.decimals || 8, a = Math.pow(10, i) || 0, o = e.prefix || "", u = [] let l for (l = n; l < r; l += s) u.push(o + Math.round(a * l) / a) return u } months(t) { const e = t || {}, n = e.count || 12, r = e.section, s = [] let i, a for (i = 0; i < n; ++i) (a = this.MONTHS[Math.ceil(i) % 12]), s.push(a.substring(0, r)) return s } color(t) { return this.COLORS[t % this.COLORS.length] } transparentize(t, e) { const n = void 0 === e ? 0.5 : 1 - e return ((r = t), new x(r)).alpha(n).rgbString() var r } namedColor(t) { return this.NAMED_COLORS[t % this.NAMED_COLORS.length] } newDate(t) { return Sr.now().plus({ days: t }).toJSDate() } newDateString(t) { return Sr.now().plus({ days: t }).toISO() } parseISODate(t) { return Sr.fromISO(t) } } return { init: (n) => { const r = Object.assign({}, t, n) return new e(r) }, } })() window.ChartUtils = Mr })()