UNPKG

@rnwonder/react-date-picker

Version:

A lightweight, customizable, and accessible date picker component for React applications.

284 lines (283 loc) 6.58 kB
import { f as i, l as D, G as R, H as C, Y as V, $ as E, T as x, J as L, B as O, V as c, x as w, K as T, N as $, L as S } from "./general-DZqASQRm-DXQPvh4C.js"; import { L as a, S as N, A as v, g as A } from "./format-CMbjATj9-B6oamtiF.js"; const H = (n, r, t) => t.useValueAsName ? isNaN(Number(n)) ? a(t.option) === n : a(t.option) === Number(n) : a(t.option) === a(r), Y = (n, r, t) => { var e, o, y, l, u; if (t.useValueAsName) { if (t.minDate || t.maxDate) return ((e = t.minDate) != null && e.year ? Number(n) < ((o = t.minDate) == null ? void 0 : o.year) : !1) || ((y = t.maxDate) != null && y.year ? Number(n) > ((l = t.maxDate) == null ? void 0 : l.year) : !1); if (t.enabledDays) return t.enabledDays.every((m) => "start" in m && "end" in m ? m.start.year !== Number(n) || m.end.year !== Number(n) : m.year !== Number(n)); } else { if (t.minDate || t.maxDate) return (t.minDate ? t.minDate.year === a(t.year) && a(r) < t.minDate.month || ((u = t.minDate) == null ? void 0 : u.year) > (a(t.year) || 0) : !1) || (t.maxDate ? t.maxDate.year === a(t.year) && a(r) > t.maxDate.month : !1); if (t.enabledDays && a(t.year)) return x({ year: a(t.year), month: a(r), enabledDays: t.enabledDays }); } return !1; }, k = (n, r, t, e) => { var o, y, l, u, m, g; if (t.useValueAsName) { const s = Number(r); (o = t.setOption) == null || o.call(t, s), (y = t.onYearChange) == null || y.call(t, s); const d = S({ startDay: t.startDay, year: s, type: t.type || "single" }); d && ((l = t.onChange) == null || l.call(t, d)); } else { (u = t.setOption) == null || u.call(t, n), (m = t.onMonthChange) == null || m.call(t, n); const s = S({ startDay: t.startDay, month: n, type: t.type || "single" }); s && ((g = t.onChange) == null || g.call(t, s)); } e == null || e(); }, z = ({ year: n, month: r, endDay: t, day: e, startDay: o, customDaysClassName: y, multipleObject: l, hideOutSideDays: u, hoverRangeValue: m, minDate: g, maxDate: s, disabledDays: d, enabledDays: b }) => { var f; const p = `${a(n)}-${i(a(r), e.month)}-${e.value}`; return { dayRangeEndHover: B( m, o, e, n, r ), dayRangeStartEnd: (a(m).start || o) && (a(m).end || t) && (c({ year: a(n), month: a(r), day: e.value, dateRange: a(m).start || o, monthStatus: e.month }) || c({ year: a(n), month: a(r), day: e.value, dateRange: a(m).end || t, monthStatus: e.month })), dayRangeBetween: w({ year: a(n), month: a(r), day: e.value, startDate: a(m).start || o, endDate: a(m).end || t, monthStatus: e.month }), dayRangeStart: c({ year: a(n), month: a(r), day: e.value, dateRange: a(m).start || o, monthStatus: e.month }), dayRangeEnd: c({ year: a(n), month: a(r), day: e.value, dateRange: a(m).end || t, monthStatus: e.month }), daysCurrent: O( N( D( a(n), a(r), e.month ), i(a(r), e.month), e.value ) ) && e.month === "current", daysNotCurrentMonth: e.month !== "current", ...L({ year: a(n), month: a(r), day: e }), customDayClass: (f = y == null ? void 0 : y.find( (h) => h.year === D( a(n), a(r), e.month ) && h.month === i(a(r), e.month) && h.day === e.value )) == null ? void 0 : f.className, isMultipleSelected: !!(l != null && l.find( (h) => h.year === D( a(n), a(r), e.month ) && h.month === i(a(r), e.month) && h.day === e.value )), hidden: u ? e.month !== "current" : !1, disabled: V({ disabledDays: d, day: e, month: a(r), year: a(n) }) || E({ day: e, month: r, year: n, minDate: g, maxDate: s }) || x({ enabledDays: b, day: e, month: a(r), year: a(n) }), date: p, dateValue: p }; }, B = (n, r, t, e, o) => { var y, l; return !((y = a(n).end) != null && y.day) || !((l = a(n).start) != null && l.day) || !(r != null && r.day) ? !1 : $( a(n).start, r ) ? T(a(n).start, { year: D( a(e), a(o), t.month ), month: i(a(o), t.month), day: t.value }) : $(r, a(n).end) ? T(a(n).end, { year: D( a(e), a(o), t.month ), month: i(a(o), t.month), day: t.value }) : !1; }, F = ({ year: n, day: r, startDay: t, endDay: e, disabledDays: o, month: y, hover: l, hoverEndDay: u, enabledDays: m, disallowSameDayRange: g }) => { if ((t && e || !t && !e) && !l && !u) return { start: { year: D( a(n), a(y), r.month ), month: i(a(y), r.month), day: r.value }, end: void 0, initial: !0 }; if (t) { if (t.year === void 0 || t.month === void 0 || t.day === void 0) return { start: t, end: e }; const s = N( t.year, t.month, t.day ), d = N( D( a(n), a(y), r.month ), i(a(y), r.month), r.value ); if (s.getTime() === d.getTime()) return g ? { start: t } : { start: t, end: v(d) }; const b = o && R( s.getTime() < d.getTime() ? s : d, s.getTime() < d.getTime() ? d : s, o ), f = m && C( s.getTime() < d.getTime() ? s : d, s.getTime() < d.getTime() ? d : s, m ); if (b || f) return l ? { start: t } : { start: v(d), initial: !0 }; if (s.getTime() < d.getTime()) return { end: v(d), start: t }; if (s.getTime() > d.getTime()) return { start: v(d), end: v(s) }; } return { start: t, end: e }; }, G = (n, r) => { const t = (l) => { if (!isNaN(Number(l))) return Number(l); for (let u = 0; u <= 9; u++) if (A(u, n) === l) return u; throw new Error(`Unrecognized digit '${l}' for locale '${n}'`); }; let e = 0, o = 1; const y = r.value.replace(/[,٬.’ '\s]/g, ""); for (let l = y.length - 1; l >= 0; l--) { const u = t(y[l]); e += u * o, o *= 10; } return { ...r, value: e }; }; export { Y as $, z as L, H as W, F as Z, G as c, k as j };