@konstructio/ui
Version:
A set of reusable and customizable React components built for konstruct.io
68 lines (67 loc) • 2.65 kB
JavaScript
var p = (t, n) => {
if (!t) return "";
const e = new Date(t);
return n && e.setHours(n.getHours(), n.getMinutes(), n.getSeconds()), e.toISOString();
}, c = (t, n) => {
const e = t.length < n.length;
let r = t.replace(/[^0-9/]/g, "").replace(/\/+/g, "/");
return r = r.slice(0, 10), e || (/^\d{2}$/.test(r) || /^\d{2}\/\d{2}$/.test(r)) && (r = r + "/"), r;
}, g = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
], l = (t, n = "24") => {
if (!t) return !0;
const [e, r] = t.split(":").map(Number);
return isNaN(e) || isNaN(r) ? !1 : n === "24" ? e >= 0 && e <= 23 && r >= 0 && r <= 59 : e >= 1 && e <= 12 && r >= 0 && r <= 59;
}, v = (t, n = "24", e) => {
if (!t || !l(t, n)) return;
const [r, i] = t.split(":").map(Number), a = /* @__PURE__ */ new Date();
let o = r;
return n === "12" && e && (e === "PM" && r !== 12 ? o = r + 12 : e === "AM" && r === 12 && (o = 0)), a.setHours(o, i, 0, 0), a;
}, d = (t, n = "24") => {
if (!t) return "";
const e = t.getHours(), r = t.getMinutes();
if (n === "24") return `${e.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}`;
const i = e >= 12 ? "PM" : "AM";
return `${(e % 12 || 12).toString().padStart(2, "0")}:${r.toString().padStart(2, "0")} ${i}`;
}, S = (t) => t ? `${t.getDate()} ${g[t.getMonth()]} ${t.getFullYear()}` : "", N = (t) => t ? `${(t.getMonth() + 1).toString().padStart(2, "0")}/${t.getDate().toString().padStart(2, "0")}/${t.getFullYear()}` : "", m = (t) => {
if (!t) return;
const n = t.trim().split(" ");
if (n.length !== 3) return;
const [e, r, i] = n, a = parseInt(e, 10), o = parseInt(i, 10), u = g.findIndex((f) => f.toLowerCase() === r.toLowerCase());
if (isNaN(a) || isNaN(o) || u === -1 || a < 1 || a > 31 || o < 1900 || o > 2100) return;
const s = new Date(o, u, a);
if (!(s.getMonth() !== u || s.getDate() !== a || s.getFullYear() !== o))
return s;
}, D = (t) => {
if (!t) return;
const n = t.split("/");
if (n.length !== 3) return;
const [e, r, i] = n.map(Number);
if (isNaN(e) || isNaN(r) || isNaN(i) || e < 1 || e > 12 || r < 1 || r > 31 || i < 1900 || i > 2100) return;
const a = new Date(i, e - 1, r);
if (!(a.getMonth() !== e - 1 || a.getDate() !== r || a.getFullYear() !== i))
return a;
}, h = (t) => g[t] || "";
export {
c as autoFormatDateInput,
p as combineDateAndTime,
S as formatDateToDisplayString,
N as formatDateToString,
d as formatTimeToString,
h as getMonthName,
l as isValidTimeString,
D as parseDateString,
m as parseDisplayDateString,
v as parseTimeString
};