UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2,164 lines (2,163 loc) 94.3 kB
var at = Object.defineProperty; var st = (t, r, e) => r in t ? at(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e; var c = (t, r, e) => st(t, typeof r != "symbol" ? r + "" : r, e); import { ref as V, defineComponent as Te, watch as F, computed as A, onMounted as it, createVNode as T, mergeProps as ot } from "vue"; import ut from "../button-edit/index.esm.js"; import { useReqAnimationFrame as ct, isMobilePhone as ue, getTimeObject as we, getDateObject as lt, formatObjecTime as dt, useBem as ft } from "../common/index.esm.js"; import { FTouchComboListContainer as ht } from "../combo-list/index.esm.js"; import { LocaleService as mt } from "../locale/index.esm.js"; const wt = { /** * 绑定值,格式要与指定的 format 一致 * @default '' */ modelValue: { type: String, default: "" }, /** * 小时步长值 * @default 1 */ hourStep: { type: Number, default: 1 }, /** * 分钟步长值 * @default 1 */ minuteStep: { type: Number, default: 1 }, /** * 秒步长值 * @default 1 */ secondStep: { type: Number, default: 1 }, popupClassName: { type: String, default: "" }, /** * 提示文字 * @default 请选择时间 */ placeholder: { type: String, default: "请选择时间" }, placement: { type: String, default: "auto" }, /** * 默认时间控件下拉面板,展开时显示的值 * @default null */ defaultOpenValue: { type: Date, default: null }, /** * 显示格式 * @default 'HH:mm:ss' */ format: { type: String, default: "HH:mm:ss" }, isOpen: { type: Boolean, default: !1 }, /** * 时间下拉面板是否显示标题 * @default false */ showHeader: { type: Boolean, default: !1 }, /** * 是否使用 12 小时制 * @default false */ use12Hours: { type: Boolean, default: !1 }, /** * @default null */ disabledHours: { type: Function, default: null }, /** * @default null */ disabledMinutes: { type: Function, default: null }, /** * @default null */ disabledSeconds: { type: Function, default: null }, /** * 是否隐藏被禁用的元素 * @default false */ hideDisabledElements: { type: Boolean, default: !1 }, /** * 禁用 * @default false */ disabled: { type: Boolean, default: !1 }, /** * 只读 * @default false */ readonly: { type: Boolean, default: !1 }, /** * 可编辑 * @default true */ editable: { type: Boolean, default: !0 }, /** * 是否可扩展 */ expandable: { type: Boolean, default: !1 }, /** * 扩展模式 text | button */ expandMode: { type: String, default: "text" }, /** * 扩展文本内容 */ expandContent: { type: String, default: "" }, /** * 扩展按钮是否禁用 */ expandDisabled: { type: Boolean, default: !1 }, enableClear: { type: Boolean, default: !0 } }, yt = { modelValue: { type: String, default: "" }, hourStep: { type: Number, default: 1 }, minuteStep: { type: Number, default: 1 }, secondStep: { type: Number, default: 1 }, defaultOpenValue: { type: Date, default: null }, disabledHours: { type: Function, default: null }, disabledMinutes: { type: Function, default: null }, disabledSeconds: { type: Function, default: null }, format: { type: String, default: "HH:mm:ss" }, isOpen: { type: Boolean, default: !1 }, use12Hours: { type: Boolean, default: !1 }, showHeader: { type: Boolean, default: !1 }, hideDisabledElements: { type: Boolean, default: !1 }, inDatePicker: { type: Boolean, default: !1 }, headerLabels: { type: Object, default: null } }; function S(t) { const r = Object.prototype.toString.call(t); return t instanceof Date || typeof t == "object" && r === "[object Date]" ? new t.constructor(+t) : typeof t == "number" || r === "[object Number]" || typeof t == "string" || r === "[object String]" ? new Date(t) : /* @__PURE__ */ new Date(NaN); } function Y(t, r) { return t instanceof Date ? new t.constructor(r) : new Date(r); } function We(t, r) { const e = S(t); return isNaN(r) ? Y(t, NaN) : (r && e.setDate(e.getDate() + r), e); } const Se = 6048e5, pt = 864e5, bt = 6e4, gt = 36e5, xt = 1e3; let vt = {}; function J() { return vt; } function G(t, r) { var u, b, w, y; const e = J(), n = (r == null ? void 0 : r.weekStartsOn) ?? ((b = (u = r == null ? void 0 : r.locale) == null ? void 0 : u.options) == null ? void 0 : b.weekStartsOn) ?? e.weekStartsOn ?? ((y = (w = e.locale) == null ? void 0 : w.options) == null ? void 0 : y.weekStartsOn) ?? 0, a = S(t), s = a.getDay(), o = (s < n ? 7 : 0) + s - n; return a.setDate(a.getDate() - o), a.setHours(0, 0, 0, 0), a; } function Z(t) { return G(t, { weekStartsOn: 1 }); } function Fe(t) { const r = S(t), e = r.getFullYear(), n = Y(t, 0); n.setFullYear(e + 1, 0, 4), n.setHours(0, 0, 0, 0); const a = Z(n), s = Y(t, 0); s.setFullYear(e, 0, 4), s.setHours(0, 0, 0, 0); const o = Z(s); return r.getTime() >= a.getTime() ? e + 1 : r.getTime() >= o.getTime() ? e : e - 1; } function Oe(t) { const r = S(t); return r.setHours(0, 0, 0, 0), r; } function ce(t) { const r = S(t), e = new Date( Date.UTC( r.getFullYear(), r.getMonth(), r.getDate(), r.getHours(), r.getMinutes(), r.getSeconds(), r.getMilliseconds() ) ); return e.setUTCFullYear(r.getFullYear()), +t - +e; } function Tt(t, r) { const e = Oe(t), n = Oe(r), a = +e - ce(e), s = +n - ce(n); return Math.round((a - s) / pt); } function Ht(t) { const r = Fe(t), e = Y(t, 0); return e.setFullYear(r, 0, 4), e.setHours(0, 0, 0, 0), Z(e); } function Mt(t) { return t instanceof Date || typeof t == "object" && Object.prototype.toString.call(t) === "[object Date]"; } function qe(t) { if (!Mt(t) && typeof t != "number") return !1; const r = S(t); return !isNaN(Number(r)); } function Pt(t) { const r = S(t), e = Y(t, 0); return e.setFullYear(r.getFullYear(), 0, 1), e.setHours(0, 0, 0, 0), e; } const kt = { lessThanXSeconds: { one: "less than a second", other: "less than {{count}} seconds" }, xSeconds: { one: "1 second", other: "{{count}} seconds" }, halfAMinute: "half a minute", lessThanXMinutes: { one: "less than a minute", other: "less than {{count}} minutes" }, xMinutes: { one: "1 minute", other: "{{count}} minutes" }, aboutXHours: { one: "about 1 hour", other: "about {{count}} hours" }, xHours: { one: "1 hour", other: "{{count}} hours" }, xDays: { one: "1 day", other: "{{count}} days" }, aboutXWeeks: { one: "about 1 week", other: "about {{count}} weeks" }, xWeeks: { one: "1 week", other: "{{count}} weeks" }, aboutXMonths: { one: "about 1 month", other: "about {{count}} months" }, xMonths: { one: "1 month", other: "{{count}} months" }, aboutXYears: { one: "about 1 year", other: "about {{count}} years" }, xYears: { one: "1 year", other: "{{count}} years" }, overXYears: { one: "over 1 year", other: "over {{count}} years" }, almostXYears: { one: "almost 1 year", other: "almost {{count}} years" } }, Dt = (t, r, e) => { let n; const a = kt[t]; return typeof a == "string" ? n = a : r === 1 ? n = a.one : n = a.other.replace("{{count}}", r.toString()), e != null && e.addSuffix ? e.comparison && e.comparison > 0 ? "in " + n : n + " ago" : n; }; function ye(t) { return (r = {}) => { const e = r.width ? String(r.width) : t.defaultWidth; return t.formats[e] || t.formats[t.defaultWidth]; }; } const Ot = { full: "EEEE, MMMM do, y", long: "MMMM do, y", medium: "MMM d, y", short: "MM/dd/yyyy" }, Vt = { full: "h:mm:ss a zzzz", long: "h:mm:ss a z", medium: "h:mm:ss a", short: "h:mm a" }, Ct = { full: "{{date}} 'at' {{time}}", long: "{{date}} 'at' {{time}}", medium: "{{date}}, {{time}}", short: "{{date}}, {{time}}" }, Yt = { date: ye({ formats: Ot, defaultWidth: "full" }), time: ye({ formats: Vt, defaultWidth: "full" }), dateTime: ye({ formats: Ct, defaultWidth: "full" }) }, Et = { lastWeek: "'last' eeee 'at' p", yesterday: "'yesterday at' p", today: "'today at' p", tomorrow: "'tomorrow at' p", nextWeek: "eeee 'at' p", other: "P" }, Nt = (t, r, e, n) => Et[t]; function ne(t) { return (r, e) => { const n = e != null && e.context ? String(e.context) : "standalone"; let a; if (n === "formatting" && t.formattingValues) { const o = t.defaultFormattingWidth || t.defaultWidth, u = e != null && e.width ? String(e.width) : o; a = t.formattingValues[u] || t.formattingValues[o]; } else { const o = t.defaultWidth, u = e != null && e.width ? String(e.width) : t.defaultWidth; a = t.values[u] || t.values[o]; } const s = t.argumentCallback ? t.argumentCallback(r) : r; return a[s]; }; } const _t = { narrow: ["B", "A"], abbreviated: ["BC", "AD"], wide: ["Before Christ", "Anno Domini"] }, Wt = { narrow: ["1", "2", "3", "4"], abbreviated: ["Q1", "Q2", "Q3", "Q4"], wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"] }, St = { narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"], abbreviated: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], wide: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] }, Ft = { narrow: ["S", "M", "T", "W", "T", "F", "S"], short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"], abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], wide: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ] }, qt = { narrow: { am: "a", pm: "p", midnight: "mi", noon: "n", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }, abbreviated: { am: "AM", pm: "PM", midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }, wide: { am: "a.m.", pm: "p.m.", midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" } }, Lt = { narrow: { am: "a", pm: "p", midnight: "mi", noon: "n", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" }, abbreviated: { am: "AM", pm: "PM", midnight: "midnight", noon: "noon", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" }, wide: { am: "a.m.", pm: "p.m.", midnight: "midnight", noon: "noon", morning: "in the morning", afternoon: "in the afternoon", evening: "in the evening", night: "at night" } }, It = (t, r) => { const e = Number(t), n = e % 100; if (n > 20 || n < 10) switch (n % 10) { case 1: return e + "st"; case 2: return e + "nd"; case 3: return e + "rd"; } return e + "th"; }, Bt = { ordinalNumber: It, era: ne({ values: _t, defaultWidth: "wide" }), quarter: ne({ values: Wt, defaultWidth: "wide", argumentCallback: (t) => t - 1 }), month: ne({ values: St, defaultWidth: "wide" }), day: ne({ values: Ft, defaultWidth: "wide" }), dayPeriod: ne({ values: qt, defaultWidth: "wide", formattingValues: Lt, defaultFormattingWidth: "wide" }) }; function re(t) { return (r, e = {}) => { const n = e.width, a = n && t.matchPatterns[n] || t.matchPatterns[t.defaultMatchWidth], s = r.match(a); if (!s) return null; const o = s[0], u = n && t.parsePatterns[n] || t.parsePatterns[t.defaultParseWidth], b = Array.isArray(u) ? Qt(u, (g) => g.test(o)) : ( // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type Rt(u, (g) => g.test(o)) ); let w; w = t.valueCallback ? t.valueCallback(b) : b, w = e.valueCallback ? ( // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type e.valueCallback(w) ) : w; const y = r.slice(o.length); return { value: w, rest: y }; }; } function Rt(t, r) { for (const e in t) if (Object.prototype.hasOwnProperty.call(t, e) && r(t[e])) return e; } function Qt(t, r) { for (let e = 0; e < t.length; e++) if (r(t[e])) return e; } function At(t) { return (r, e = {}) => { const n = r.match(t.matchPattern); if (!n) return null; const a = n[0], s = r.match(t.parsePattern); if (!s) return null; let o = t.valueCallback ? t.valueCallback(s[0]) : s[0]; o = e.valueCallback ? e.valueCallback(o) : o; const u = r.slice(a.length); return { value: o, rest: u }; }; } const Xt = /^(\d+)(th|st|nd|rd)?/i, Gt = /\d+/i, jt = { narrow: /^(b|a)/i, abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i, wide: /^(before christ|before common era|anno domini|common era)/i }, $t = { any: [/^b/i, /^(a|c)/i] }, Ut = { narrow: /^[1234]/i, abbreviated: /^q[1234]/i, wide: /^[1234](th|st|nd|rd)? quarter/i }, zt = { any: [/1/i, /2/i, /3/i, /4/i] }, Zt = { narrow: /^[jfmasond]/i, abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i, wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i }, Jt = { narrow: [ /^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i ], any: [ /^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i ] }, Kt = { narrow: /^[smtwf]/i, short: /^(su|mo|tu|we|th|fr|sa)/i, abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i, wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i }, en = { narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] }, tn = { narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i, any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i }, nn = { any: { am: /^a/i, pm: /^p/i, midnight: /^mi/i, noon: /^no/i, morning: /morning/i, afternoon: /afternoon/i, evening: /evening/i, night: /night/i } }, rn = { ordinalNumber: At({ matchPattern: Xt, parsePattern: Gt, valueCallback: (t) => parseInt(t, 10) }), era: re({ matchPatterns: jt, defaultMatchWidth: "wide", parsePatterns: $t, defaultParseWidth: "any" }), quarter: re({ matchPatterns: Ut, defaultMatchWidth: "wide", parsePatterns: zt, defaultParseWidth: "any", valueCallback: (t) => t + 1 }), month: re({ matchPatterns: Zt, defaultMatchWidth: "wide", parsePatterns: Jt, defaultParseWidth: "any" }), day: re({ matchPatterns: Kt, defaultMatchWidth: "wide", parsePatterns: en, defaultParseWidth: "any" }), dayPeriod: re({ matchPatterns: tn, defaultMatchWidth: "any", parsePatterns: nn, defaultParseWidth: "any" }) }, Le = { code: "en-US", formatDistance: Dt, formatLong: Yt, formatRelative: Nt, localize: Bt, match: rn, options: { weekStartsOn: 0, firstWeekContainsDate: 1 } }; function an(t) { const r = S(t); return Tt(r, Pt(r)) + 1; } function Ie(t) { const r = S(t), e = +Z(r) - +Ht(r); return Math.round(e / Se) + 1; } function He(t, r) { var y, g, i, m; const e = S(t), n = e.getFullYear(), a = J(), s = (r == null ? void 0 : r.firstWeekContainsDate) ?? ((g = (y = r == null ? void 0 : r.locale) == null ? void 0 : y.options) == null ? void 0 : g.firstWeekContainsDate) ?? a.firstWeekContainsDate ?? ((m = (i = a.locale) == null ? void 0 : i.options) == null ? void 0 : m.firstWeekContainsDate) ?? 1, o = Y(t, 0); o.setFullYear(n + 1, 0, s), o.setHours(0, 0, 0, 0); const u = G(o, r), b = Y(t, 0); b.setFullYear(n, 0, s), b.setHours(0, 0, 0, 0); const w = G(b, r); return e.getTime() >= u.getTime() ? n + 1 : e.getTime() >= w.getTime() ? n : n - 1; } function sn(t, r) { var u, b, w, y; const e = J(), n = (r == null ? void 0 : r.firstWeekContainsDate) ?? ((b = (u = r == null ? void 0 : r.locale) == null ? void 0 : u.options) == null ? void 0 : b.firstWeekContainsDate) ?? e.firstWeekContainsDate ?? ((y = (w = e.locale) == null ? void 0 : w.options) == null ? void 0 : y.firstWeekContainsDate) ?? 1, a = He(t, r), s = Y(t, 0); return s.setFullYear(a, 0, n), s.setHours(0, 0, 0, 0), G(s, r); } function Be(t, r) { const e = S(t), n = +G(e, r) - +sn(e, r); return Math.round(n / Se) + 1; } function P(t, r) { const e = t < 0 ? "-" : "", n = Math.abs(t).toString().padStart(r, "0"); return e + n; } const X = { // Year y(t, r) { const e = t.getFullYear(), n = e > 0 ? e : 1 - e; return P(r === "yy" ? n % 100 : n, r.length); }, // Month M(t, r) { const e = t.getMonth(); return r === "M" ? String(e + 1) : P(e + 1, 2); }, // Day of the month d(t, r) { return P(t.getDate(), r.length); }, // AM or PM a(t, r) { const e = t.getHours() / 12 >= 1 ? "pm" : "am"; switch (r) { case "a": case "aa": return e.toUpperCase(); case "aaa": return e; case "aaaaa": return e[0]; case "aaaa": default: return e === "am" ? "a.m." : "p.m."; } }, // Hour [1-12] h(t, r) { return P(t.getHours() % 12 || 12, r.length); }, // Hour [0-23] H(t, r) { return P(t.getHours(), r.length); }, // Minute m(t, r) { return P(t.getMinutes(), r.length); }, // Second s(t, r) { return P(t.getSeconds(), r.length); }, // Fraction of second S(t, r) { const e = r.length, n = t.getMilliseconds(), a = Math.trunc( n * Math.pow(10, e - 3) ); return P(a, r.length); } }, z = { midnight: "midnight", noon: "noon", morning: "morning", afternoon: "afternoon", evening: "evening", night: "night" }, Ve = { // Era G: function(t, r, e) { const n = t.getFullYear() > 0 ? 1 : 0; switch (r) { case "G": case "GG": case "GGG": return e.era(n, { width: "abbreviated" }); case "GGGGG": return e.era(n, { width: "narrow" }); case "GGGG": default: return e.era(n, { width: "wide" }); } }, // Year y: function(t, r, e) { if (r === "yo") { const n = t.getFullYear(), a = n > 0 ? n : 1 - n; return e.ordinalNumber(a, { unit: "year" }); } return X.y(t, r); }, // Local week-numbering year Y: function(t, r, e, n) { const a = He(t, n), s = a > 0 ? a : 1 - a; if (r === "YY") { const o = s % 100; return P(o, 2); } return r === "Yo" ? e.ordinalNumber(s, { unit: "year" }) : P(s, r.length); }, // ISO week-numbering year R: function(t, r) { const e = Fe(t); return P(e, r.length); }, // Extended year. This is a single number designating the year of this calendar system. // The main difference between `y` and `u` localizers are B.C. years: // | Year | `y` | `u` | // |------|-----|-----| // | AC 1 | 1 | 1 | // | BC 1 | 1 | 0 | // | BC 2 | 2 | -1 | // Also `yy` always returns the last two digits of a year, // while `uu` pads single digit years to 2 characters and returns other years unchanged. u: function(t, r) { const e = t.getFullYear(); return P(e, r.length); }, // Quarter Q: function(t, r, e) { const n = Math.ceil((t.getMonth() + 1) / 3); switch (r) { case "Q": return String(n); case "QQ": return P(n, 2); case "Qo": return e.ordinalNumber(n, { unit: "quarter" }); case "QQQ": return e.quarter(n, { width: "abbreviated", context: "formatting" }); case "QQQQQ": return e.quarter(n, { width: "narrow", context: "formatting" }); case "QQQQ": default: return e.quarter(n, { width: "wide", context: "formatting" }); } }, // Stand-alone quarter q: function(t, r, e) { const n = Math.ceil((t.getMonth() + 1) / 3); switch (r) { case "q": return String(n); case "qq": return P(n, 2); case "qo": return e.ordinalNumber(n, { unit: "quarter" }); case "qqq": return e.quarter(n, { width: "abbreviated", context: "standalone" }); case "qqqqq": return e.quarter(n, { width: "narrow", context: "standalone" }); case "qqqq": default: return e.quarter(n, { width: "wide", context: "standalone" }); } }, // Month M: function(t, r, e) { const n = t.getMonth(); switch (r) { case "M": case "MM": return X.M(t, r); case "Mo": return e.ordinalNumber(n + 1, { unit: "month" }); case "MMM": return e.month(n, { width: "abbreviated", context: "formatting" }); case "MMMMM": return e.month(n, { width: "narrow", context: "formatting" }); case "MMMM": default: return e.month(n, { width: "wide", context: "formatting" }); } }, // Stand-alone month L: function(t, r, e) { const n = t.getMonth(); switch (r) { case "L": return String(n + 1); case "LL": return P(n + 1, 2); case "Lo": return e.ordinalNumber(n + 1, { unit: "month" }); case "LLL": return e.month(n, { width: "abbreviated", context: "standalone" }); case "LLLLL": return e.month(n, { width: "narrow", context: "standalone" }); case "LLLL": default: return e.month(n, { width: "wide", context: "standalone" }); } }, // Local week of year w: function(t, r, e, n) { const a = Be(t, n); return r === "wo" ? e.ordinalNumber(a, { unit: "week" }) : P(a, r.length); }, // ISO week of year I: function(t, r, e) { const n = Ie(t); return r === "Io" ? e.ordinalNumber(n, { unit: "week" }) : P(n, r.length); }, // Day of the month d: function(t, r, e) { return r === "do" ? e.ordinalNumber(t.getDate(), { unit: "date" }) : X.d(t, r); }, // Day of year D: function(t, r, e) { const n = an(t); return r === "Do" ? e.ordinalNumber(n, { unit: "dayOfYear" }) : P(n, r.length); }, // Day of week E: function(t, r, e) { const n = t.getDay(); switch (r) { case "E": case "EE": case "EEE": return e.day(n, { width: "abbreviated", context: "formatting" }); case "EEEEE": return e.day(n, { width: "narrow", context: "formatting" }); case "EEEEEE": return e.day(n, { width: "short", context: "formatting" }); case "EEEE": default: return e.day(n, { width: "wide", context: "formatting" }); } }, // Local day of week e: function(t, r, e, n) { const a = t.getDay(), s = (a - n.weekStartsOn + 8) % 7 || 7; switch (r) { case "e": return String(s); case "ee": return P(s, 2); case "eo": return e.ordinalNumber(s, { unit: "day" }); case "eee": return e.day(a, { width: "abbreviated", context: "formatting" }); case "eeeee": return e.day(a, { width: "narrow", context: "formatting" }); case "eeeeee": return e.day(a, { width: "short", context: "formatting" }); case "eeee": default: return e.day(a, { width: "wide", context: "formatting" }); } }, // Stand-alone local day of week c: function(t, r, e, n) { const a = t.getDay(), s = (a - n.weekStartsOn + 8) % 7 || 7; switch (r) { case "c": return String(s); case "cc": return P(s, r.length); case "co": return e.ordinalNumber(s, { unit: "day" }); case "ccc": return e.day(a, { width: "abbreviated", context: "standalone" }); case "ccccc": return e.day(a, { width: "narrow", context: "standalone" }); case "cccccc": return e.day(a, { width: "short", context: "standalone" }); case "cccc": default: return e.day(a, { width: "wide", context: "standalone" }); } }, // ISO day of week i: function(t, r, e) { const n = t.getDay(), a = n === 0 ? 7 : n; switch (r) { case "i": return String(a); case "ii": return P(a, r.length); case "io": return e.ordinalNumber(a, { unit: "day" }); case "iii": return e.day(n, { width: "abbreviated", context: "formatting" }); case "iiiii": return e.day(n, { width: "narrow", context: "formatting" }); case "iiiiii": return e.day(n, { width: "short", context: "formatting" }); case "iiii": default: return e.day(n, { width: "wide", context: "formatting" }); } }, // AM or PM a: function(t, r, e) { const a = t.getHours() / 12 >= 1 ? "pm" : "am"; switch (r) { case "a": case "aa": return e.dayPeriod(a, { width: "abbreviated", context: "formatting" }); case "aaa": return e.dayPeriod(a, { width: "abbreviated", context: "formatting" }).toLowerCase(); case "aaaaa": return e.dayPeriod(a, { width: "narrow", context: "formatting" }); case "aaaa": default: return e.dayPeriod(a, { width: "wide", context: "formatting" }); } }, // AM, PM, midnight, noon b: function(t, r, e) { const n = t.getHours(); let a; switch (n === 12 ? a = z.noon : n === 0 ? a = z.midnight : a = n / 12 >= 1 ? "pm" : "am", r) { case "b": case "bb": return e.dayPeriod(a, { width: "abbreviated", context: "formatting" }); case "bbb": return e.dayPeriod(a, { width: "abbreviated", context: "formatting" }).toLowerCase(); case "bbbbb": return e.dayPeriod(a, { width: "narrow", context: "formatting" }); case "bbbb": default: return e.dayPeriod(a, { width: "wide", context: "formatting" }); } }, // in the morning, in the afternoon, in the evening, at night B: function(t, r, e) { const n = t.getHours(); let a; switch (n >= 17 ? a = z.evening : n >= 12 ? a = z.afternoon : n >= 4 ? a = z.morning : a = z.night, r) { case "B": case "BB": case "BBB": return e.dayPeriod(a, { width: "abbreviated", context: "formatting" }); case "BBBBB": return e.dayPeriod(a, { width: "narrow", context: "formatting" }); case "BBBB": default: return e.dayPeriod(a, { width: "wide", context: "formatting" }); } }, // Hour [1-12] h: function(t, r, e) { if (r === "ho") { let n = t.getHours() % 12; return n === 0 && (n = 12), e.ordinalNumber(n, { unit: "hour" }); } return X.h(t, r); }, // Hour [0-23] H: function(t, r, e) { return r === "Ho" ? e.ordinalNumber(t.getHours(), { unit: "hour" }) : X.H(t, r); }, // Hour [0-11] K: function(t, r, e) { const n = t.getHours() % 12; return r === "Ko" ? e.ordinalNumber(n, { unit: "hour" }) : P(n, r.length); }, // Hour [1-24] k: function(t, r, e) { let n = t.getHours(); return n === 0 && (n = 24), r === "ko" ? e.ordinalNumber(n, { unit: "hour" }) : P(n, r.length); }, // Minute m: function(t, r, e) { return r === "mo" ? e.ordinalNumber(t.getMinutes(), { unit: "minute" }) : X.m(t, r); }, // Second s: function(t, r, e) { return r === "so" ? e.ordinalNumber(t.getSeconds(), { unit: "second" }) : X.s(t, r); }, // Fraction of second S: function(t, r) { return X.S(t, r); }, // Timezone (ISO-8601. If offset is 0, output is always `'Z'`) X: function(t, r, e) { const n = t.getTimezoneOffset(); if (n === 0) return "Z"; switch (r) { case "X": return Ye(n); case "XXXX": case "XX": return $(n); case "XXXXX": case "XXX": default: return $(n, ":"); } }, // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent) x: function(t, r, e) { const n = t.getTimezoneOffset(); switch (r) { case "x": return Ye(n); case "xxxx": case "xx": return $(n); case "xxxxx": case "xxx": default: return $(n, ":"); } }, // Timezone (GMT) O: function(t, r, e) { const n = t.getTimezoneOffset(); switch (r) { case "O": case "OO": case "OOO": return "GMT" + Ce(n, ":"); case "OOOO": default: return "GMT" + $(n, ":"); } }, // Timezone (specific non-location) z: function(t, r, e) { const n = t.getTimezoneOffset(); switch (r) { case "z": case "zz": case "zzz": return "GMT" + Ce(n, ":"); case "zzzz": default: return "GMT" + $(n, ":"); } }, // Seconds timestamp t: function(t, r, e) { const n = Math.trunc(t.getTime() / 1e3); return P(n, r.length); }, // Milliseconds timestamp T: function(t, r, e) { const n = t.getTime(); return P(n, r.length); } }; function Ce(t, r = "") { const e = t > 0 ? "-" : "+", n = Math.abs(t), a = Math.trunc(n / 60), s = n % 60; return s === 0 ? e + String(a) : e + String(a) + r + P(s, 2); } function Ye(t, r) { return t % 60 === 0 ? (t > 0 ? "-" : "+") + P(Math.abs(t) / 60, 2) : $(t, r); } function $(t, r = "") { const e = t > 0 ? "-" : "+", n = Math.abs(t), a = P(Math.trunc(n / 60), 2), s = P(n % 60, 2); return e + a + r + s; } const Ee = (t, r) => { switch (t) { case "P": return r.date({ width: "short" }); case "PP": return r.date({ width: "medium" }); case "PPP": return r.date({ width: "long" }); case "PPPP": default: return r.date({ width: "full" }); } }, Re = (t, r) => { switch (t) { case "p": return r.time({ width: "short" }); case "pp": return r.time({ width: "medium" }); case "ppp": return r.time({ width: "long" }); case "pppp": default: return r.time({ width: "full" }); } }, on = (t, r) => { const e = t.match(/(P+)(p+)?/) || [], n = e[1], a = e[2]; if (!a) return Ee(t, r); let s; switch (n) { case "P": s = r.dateTime({ width: "short" }); break; case "PP": s = r.dateTime({ width: "medium" }); break; case "PPP": s = r.dateTime({ width: "long" }); break; case "PPPP": default: s = r.dateTime({ width: "full" }); break; } return s.replace("{{date}}", Ee(n, r)).replace("{{time}}", Re(a, r)); }, be = { p: Re, P: on }, un = /^D+$/, cn = /^Y+$/, ln = ["D", "DD", "YY", "YYYY"]; function Qe(t) { return un.test(t); } function Ae(t) { return cn.test(t); } function ge(t, r, e) { const n = dn(t, r, e); if (console.warn(n), ln.includes(t)) throw new RangeError(n); } function dn(t, r, e) { const n = t[0] === "Y" ? "years" : "days of the month"; return `Use \`${t.toLowerCase()}\` instead of \`${t}\` (in \`${r}\`) for formatting ${n} to the input \`${e}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`; } const fn = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g, hn = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g, mn = /^'([^]*?)'?$/, wn = /''/g, yn = /[a-zA-Z]/; function Ne(t, r, e) { var y, g, i, m; const n = J(), a = n.locale ?? Le, s = n.firstWeekContainsDate ?? ((g = (y = n.locale) == null ? void 0 : y.options) == null ? void 0 : g.firstWeekContainsDate) ?? 1, o = n.weekStartsOn ?? ((m = (i = n.locale) == null ? void 0 : i.options) == null ? void 0 : m.weekStartsOn) ?? 0, u = S(t); if (!qe(u)) throw new RangeError("Invalid time value"); let b = r.match(hn).map((h) => { const v = h[0]; if (v === "p" || v === "P") { const q = be[v]; return q(h, a.formatLong); } return h; }).join("").match(fn).map((h) => { if (h === "''") return { isToken: !1, value: "'" }; const v = h[0]; if (v === "'") return { isToken: !1, value: pn(h) }; if (Ve[v]) return { isToken: !0, value: h }; if (v.match(yn)) throw new RangeError( "Format string contains an unescaped latin alphabet character `" + v + "`" ); return { isToken: !1, value: h }; }); a.localize.preprocessor && (b = a.localize.preprocessor(u, b)); const w = { firstWeekContainsDate: s, weekStartsOn: o, locale: a }; return b.map((h) => { if (!h.isToken) return h.value; const v = h.value; (Ae(v) || Qe(v)) && ge(v, r, String(t)); const q = Ve[v[0]]; return q(u, v, a.localize, w); }).join(""); } function pn(t) { const r = t.match(mn); return r ? r[1].replace(wn, "'") : t; } function bn() { return Object.assign({}, J()); } function gn(t) { let e = S(t).getDay(); return e === 0 && (e = 7), e; } function xn(t, r) { const e = r instanceof Date ? Y(r, 0) : new r(0); return e.setFullYear( t.getFullYear(), t.getMonth(), t.getDate() ), e.setHours( t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds() ), e; } const vn = 10; class Xe { constructor() { c(this, "subPriority", 0); } validate(r, e) { return !0; } } class Tn extends Xe { constructor(r, e, n, a, s) { super(), this.value = r, this.validateValue = e, this.setValue = n, this.priority = a, s && (this.subPriority = s); } validate(r, e) { return this.validateValue(r, this.value, e); } set(r, e, n) { return this.setValue(r, e, this.value, n); } } class Hn extends Xe { constructor() { super(...arguments); c(this, "priority", vn); c(this, "subPriority", -1); } set(e, n) { return n.timestampIsSet ? e : Y(e, xn(e, Date)); } } class M { run(r, e, n, a) { const s = this.parse(r, e, n, a); return s ? { setter: new Tn( s.value, this.validate, this.set, this.priority, this.subPriority ), rest: s.rest } : null; } validate(r, e, n) { return !0; } } class Mn extends M { constructor() { super(...arguments); c(this, "priority", 140); c(this, "incompatibleTokens", ["R", "u", "t", "T"]); } parse(e, n, a) { switch (n) { case "G": case "GG": case "GGG": return a.era(e, { width: "abbreviated" }) || a.era(e, { width: "narrow" }); case "GGGGG": return a.era(e, { width: "narrow" }); case "GGGG": default: return a.era(e, { width: "wide" }) || a.era(e, { width: "abbreviated" }) || a.era(e, { width: "narrow" }); } } set(e, n, a) { return n.era = a, e.setFullYear(a, 0, 1), e.setHours(0, 0, 0, 0), e; } } const N = { month: /^(1[0-2]|0?\d)/, // 0 to 12 date: /^(3[0-1]|[0-2]?\d)/, // 0 to 31 dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/, // 0 to 366 week: /^(5[0-3]|[0-4]?\d)/, // 0 to 53 hour23h: /^(2[0-3]|[0-1]?\d)/, // 0 to 23 hour24h: /^(2[0-4]|[0-1]?\d)/, // 0 to 24 hour11h: /^(1[0-1]|0?\d)/, // 0 to 11 hour12h: /^(1[0-2]|0?\d)/, // 0 to 12 minute: /^[0-5]?\d/, // 0 to 59 second: /^[0-5]?\d/, // 0 to 59 singleDigit: /^\d/, // 0 to 9 twoDigits: /^\d{1,2}/, // 0 to 99 threeDigits: /^\d{1,3}/, // 0 to 999 fourDigits: /^\d{1,4}/, // 0 to 9999 anyDigitsSigned: /^-?\d+/, singleDigitSigned: /^-?\d/, // 0 to 9, -0 to -9 twoDigitsSigned: /^-?\d{1,2}/, // 0 to 99, -0 to -99 threeDigitsSigned: /^-?\d{1,3}/, // 0 to 999, -0 to -999 fourDigitsSigned: /^-?\d{1,4}/ // 0 to 9999, -0 to -9999 }, B = { basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/, basic: /^([+-])(\d{2})(\d{2})|Z/, basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/, extended: /^([+-])(\d{2}):(\d{2})|Z/, extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/ }; function _(t, r) { return t && { value: r(t.value), rest: t.rest }; } function C(t, r) { const e = r.match(t); return e ? { value: parseInt(e[0], 10), rest: r.slice(e[0].length) } : null; } function R(t, r) { const e = r.match(t); if (!e) return null; if (e[0] === "Z") return { value: 0, rest: r.slice(1) }; const n = e[1] === "+" ? 1 : -1, a = e[2] ? parseInt(e[2], 10) : 0, s = e[3] ? parseInt(e[3], 10) : 0, o = e[5] ? parseInt(e[5], 10) : 0; return { value: n * (a * gt + s * bt + o * xt), rest: r.slice(e[0].length) }; } function Ge(t) { return C(N.anyDigitsSigned, t); } function E(t, r) { switch (t) { case 1: return C(N.singleDigit, r); case 2: return C(N.twoDigits, r); case 3: return C(N.threeDigits, r); case 4: return C(N.fourDigits, r); default: return C(new RegExp("^\\d{1," + t + "}"), r); } } function le(t, r) { switch (t) { case 1: return C(N.singleDigitSigned, r); case 2: return C(N.twoDigitsSigned, r); case 3: return C(N.threeDigitsSigned, r); case 4: return C(N.fourDigitsSigned, r); default: return C(new RegExp("^-?\\d{1," + t + "}"), r); } } function Me(t) { switch (t) { case "morning": return 4; case "evening": return 17; case "pm": case "noon": case "afternoon": return 12; case "am": case "midnight": case "night": default: return 0; } } function je(t, r) { const e = r > 0, n = e ? r : 1 - r; let a; if (n <= 50) a = t || 100; else { const s = n + 50, o = Math.trunc(s / 100) * 100, u = t >= s % 100; a = t + o - (u ? 100 : 0); } return e ? a : 1 - a; } function $e(t) { return t % 400 === 0 || t % 4 === 0 && t % 100 !== 0; } class Pn extends M { constructor() { super(...arguments); c(this, "priority", 130); c(this, "incompatibleTokens", ["Y", "R", "u", "w", "I", "i", "e", "c", "t", "T"]); } parse(e, n, a) { const s = (o) => ({ year: o, isTwoDigitYear: n === "yy" }); switch (n) { case "y": return _(E(4, e), s); case "yo": return _( a.ordinalNumber(e, { unit: "year" }), s ); default: return _(E(n.length, e), s); } } validate(e, n) { return n.isTwoDigitYear || n.year > 0; } set(e, n, a) { const s = e.getFullYear(); if (a.isTwoDigitYear) { const u = je( a.year, s ); return e.setFullYear(u, 0, 1), e.setHours(0, 0, 0, 0), e; } const o = !("era" in n) || n.era === 1 ? a.year : 1 - a.year; return e.setFullYear(o, 0, 1), e.setHours(0, 0, 0, 0), e; } } class kn extends M { constructor() { super(...arguments); c(this, "priority", 130); c(this, "incompatibleTokens", [ "y", "R", "u", "Q", "q", "M", "L", "I", "d", "D", "i", "t", "T" ]); } parse(e, n, a) { const s = (o) => ({ year: o, isTwoDigitYear: n === "YY" }); switch (n) { case "Y": return _(E(4, e), s); case "Yo": return _( a.ordinalNumber(e, { unit: "year" }), s ); default: return _(E(n.length, e), s); } } validate(e, n) { return n.isTwoDigitYear || n.year > 0; } set(e, n, a, s) { const o = He(e, s); if (a.isTwoDigitYear) { const b = je( a.year, o ); return e.setFullYear( b, 0, s.firstWeekContainsDate ), e.setHours(0, 0, 0, 0), G(e, s); } const u = !("era" in n) || n.era === 1 ? a.year : 1 - a.year; return e.setFullYear(u, 0, s.firstWeekContainsDate), e.setHours(0, 0, 0, 0), G(e, s); } } class Dn extends M { constructor() { super(...arguments); c(this, "priority", 130); c(this, "incompatibleTokens", [ "G", "y", "Y", "u", "Q", "q", "M", "L", "w", "d", "D", "e", "c", "t", "T" ]); } parse(e, n) { return le(n === "R" ? 4 : n.length, e); } set(e, n, a) { const s = Y(e, 0); return s.setFullYear(a, 0, 4), s.setHours(0, 0, 0, 0), Z(s); } } class On extends M { constructor() { super(...arguments); c(this, "priority", 130); c(this, "incompatibleTokens", ["G", "y", "Y", "R", "w", "I", "i", "e", "c", "t", "T"]); } parse(e, n) { return le(n === "u" ? 4 : n.length, e); } set(e, n, a) { return e.setFullYear(a, 0, 1), e.setHours(0, 0, 0, 0), e; } } class Vn extends M { constructor() { super(...arguments); c(this, "priority", 120); c(this, "incompatibleTokens", [ "Y", "R", "q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T" ]); } parse(e, n, a) { switch (n) { case "Q": case "QQ": return E(n.length, e); case "Qo": return a.ordinalNumber(e, { unit: "quarter" }); case "QQQ": return a.quarter(e, { width: "abbreviated", context: "formatting" }) || a.quarter(e, { width: "narrow", context: "formatting" }); case "QQQQQ": return a.quarter(e, { width: "narrow", context: "formatting" }); case "QQQQ": default: return a.quarter(e, { width: "wide", context: "formatting" }) || a.quarter(e, { width: "abbreviated", context: "formatting" }) || a.quarter(e, { width: "narrow", context: "formatting" }); } } validate(e, n) { return n >= 1 && n <= 4; } set(e, n, a) { return e.setMonth((a - 1) * 3, 1), e.setHours(0, 0, 0, 0), e; } } class Cn extends M { constructor() { super(...arguments); c(this, "priority", 120); c(this, "incompatibleTokens", [ "Y", "R", "Q", "M", "L", "w", "I", "d", "D", "i", "e", "c", "t", "T" ]); } parse(e, n, a) { switch (n) { case "q": case "qq": return E(n.length, e); case "qo": return a.ordinalNumber(e, { unit: "quarter" }); case "qqq": return a.quarter(e, { width: "abbreviated", context: "standalone" }) || a.quarter(e, { width: "narrow", context: "standalone" }); case "qqqqq": return a.quarter(e, { width: "narrow", context: "standalone" }); case "qqqq": default: return a.quarter(e, { width: "wide", context: "standalone" }) || a.quarter(e, { width: "abbreviated", context: "standalone" }) || a.quarter(e, { width: "narrow", context: "standalone" }); } } validate(e, n) { return n >= 1 && n <= 4; } set(e, n, a) { return e.setMonth((a - 1) * 3, 1), e.setHours(0, 0, 0, 0), e; } } class Yn extends M { constructor() { super(...arguments); c(this, "incompatibleTokens", [ "Y", "R", "q", "Q", "L", "w", "I", "D", "i", "e", "c", "t", "T" ]); c(this, "priority", 110); } parse(e, n, a) { const s = (o) => o - 1; switch (n) { case "M": return _( C(N.month, e), s ); case "MM": return _(E(2, e), s); case "Mo": return _( a.ordinalNumber(e, { unit: "month" }), s ); case "MMM": return a.month(e, { width: "abbreviated", context: "formatting" }) || a.month(e, { width: "narrow", context: "formatting" }); case "MMMMM": return a.month(e, { width: "narrow", context: "formatting" }); case "MMMM": default: return a.month(e, { width: "wide", context: "formatting" }) || a.month(e, { width: "abbreviated", context: "formatting" }) || a.month(e, { width: "narrow", context: "formatting" }); } } validate(e, n) { return n >= 0 && n <= 11; } set(e, n, a) { return e.setMonth(a, 1), e.setHours(0, 0, 0, 0), e; } } class En extends M { constructor() { super(...arguments); c(this, "priority", 110); c(this, "incompatibleTokens", [ "Y", "R", "q", "Q", "M", "w", "I", "D", "i", "e", "c", "t", "T" ]); } parse(e, n, a) { const s = (o) => o - 1; switch (n) { case "L": return _( C(N.month, e), s ); case "LL": return _(E(2, e), s); case "Lo": return _( a.ordinalNumber(e, { unit: "month" }), s ); case "LLL": return a.month(e, { width: "abbreviated", context: "standalone" }) || a.month(e, { width: "narrow", context: "standalone" }); case "LLLLL": return a.month(e, { width: "narrow", context: "standalone" }); case "LLLL": default: return a.month(e, { width: "wide", context: "standalone" }) || a.month(e, { width: "abbreviated", context: "standalone" }) || a.month(e, { width: "narrow", context: "standalone" }); } } validate(e, n) { return n >= 0 && n <= 11; } set(e, n, a) { return e.setMonth(a, 1), e.setHours(0, 0, 0, 0), e; } } function Nn(t, r, e) { const n = S(t), a = Be(n, e) - r; return n.setDate(n.getDate() - a * 7), n; } class _n extends M { constructor() { super(...arguments); c(this, "priority", 100); c(this, "incompatibleTokens", [ "y", "R", "u", "q", "Q", "M", "L", "I", "d", "D", "i", "t", "T" ]); } parse(e, n, a) { switch (n) { case "w": return C(N.week, e); case "wo": return a.ordinalNumber(e, { unit: "week" }); default: return E(n.length, e); } } validate(e, n) { return n >= 1 && n <= 53; } set(e, n, a, s) { return G(Nn(e, a, s), s); } } function Wn(t, r) { const e = S(t), n = Ie(e) - r; return e.setDate(e.getDate() - n * 7), e; } class Sn extends M { constructor() { super(...arguments); c(this, "priority", 100); c(this, "incompatibleTokens", [ "y", "Y", "u", "q", "Q", "M", "L", "w", "d", "D", "e", "c", "t", "T" ]); } parse(e, n, a) { switch (n) { case "I": return C(N.week, e); case "Io": return a.ordinalNumber(e, { unit: "week" }); default: return E(n.length, e); } } validate(e, n) { return n >= 1 && n <= 53; } set(e, n, a) { return Z(Wn(e, a)); } } const Fn = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], qn = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; class Ln extends M { constructor() { super(...arguments); c(this, "priority", 90); c(this, "subPriority", 1); c(this, "incompatibleTokens", [ "Y", "R", "q", "Q", "w", "I", "D", "i", "e", "c", "t", "T" ]); } parse(e, n, a) { switch (n) { case "d": return C(N.date, e); case "do": return a.ordinalNumber(e, { unit: "date" }); default: return E(n.length, e); } } validate(e, n) { const a = e.getFullYear(), s = $e(a), o = e.getMonth(); return s ? n >= 1 && n <= qn[o] : n >= 1 && n <= Fn[o]; } set(e, n, a) { return e.setDate(a), e.setHours(0, 0, 0, 0), e; } } class In extends M { constructor() { super(...arguments); c(this, "priority", 90); c(this, "subpriority", 1); c(this, "incompatibleTokens", [ "Y", "R", "q", "Q", "M", "L", "w", "I", "d", "E", "i", "e", "c", "t", "T" ]); } parse(e, n, a) { switch (n) { case "D": case "DD": return C(N.dayOfYear, e); case "Do": return a.ordinalNumber(e, { unit: "date" }); default: return E(n.length, e); } } validate(e, n) { const a = e.getFullYear(); return $e(a) ? n >= 1 && n <= 366 : n >= 1 && n <= 365; } set(e, n, a) { return e.setMonth(0, a), e.setHours(0, 0, 0, 0), e; } } function Pe(t, r, e) {