class Utils { static safeString(value) { if (value === null || value === undefined || value === "") return "-"; return String(value); } static toTitle(value) { if (String(value || "").toLowerCase() === "finished") return "Done"; return String(value || "").replace(/_/g, " ").replace(/\b\w/g, (ch) => ch.toUpperCase()); } static formatObservedAtLocal(value) { if (value === null || value === undefined || value === "") return "-"; const raw = String(value).trim(); const parsed = new Date(raw); if (Number.isNaN(parsed.getTime())) { return Utils.safeString(raw).slice(11, 19); } return parsed.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", second: "2-digit", }); } }