@rnwonder/react-date-picker
Version:
A lightweight, customizable, and accessible date picker component for React applications.
284 lines (283 loc) • 6.58 kB
JavaScript
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
};