${escapeDynamicHtml(mapName)}
`;
}
function readServerFromUrl() {
return new URLSearchParams(window.location.search).get("server") || "all-servers";
}
function normalizeDynamicServerSlug(value) {
const normalized = String(value || "").trim();
if (["comunidad-hispana-01", "comunidad-hispana-02", "all-servers"].includes(normalized)) return normalized;
return "all-servers";
}
function buildDynamicRecentMeta(items) {
const newest = items[0]?.closed_at || items[0]?.ended_at || items[0]?.started_at;
return newest ? `Actualizado: ${formatDynamicTimestamp(newest)}` : "Actualizado recientemente";
}
function setDynamicState(node, message, isError = false) {
node.textContent = message;
node.hidden = false;
node.classList.toggle("is-error", Boolean(isError));
}
function formatDynamicTimestamp(value) {
if (!value) return "Fecha no disponible";
const date = new Date(value);
if (Number.isNaN(date.getTime())) return String(value);
return new Intl.DateTimeFormat("es-ES", { day: "numeric", month: "numeric", year: "2-digit", hour: "2-digit", minute: "2-digit" }).format(date);
}
function formatDynamicNumber(value) {
const number = Number(value);
return Number.isFinite(number) ? new Intl.NumberFormat("es-ES").format(number) : "0";
}
function formatDynamicScore(result) {
const allied = result?.allied_score;
const axis = result?.axis_score;
if (Number.isFinite(Number(allied)) && Number.isFinite(Number(axis))) return `${allied} - ${axis}`;
return "- - -";
}
function formatDynamicResultLabel(result) {
const winner = String(result?.winner || "").toLowerCase();
if (winner === "allies" || winner === "allied") return "Victoria aliada";
if (winner === "axis") return "Victoria axis";
return "Empate";
}
function buildDynamicInternalMatchDetailUrl(item) {
const serverSlug = item?.server?.slug;
const matchId = item?.internal_detail_match_id || item?.match_id;
if (!serverSlug || matchId === undefined || matchId === null) return "";
return `./historico-partida.html?server=${encodeURIComponent(String(serverSlug))}&match=${encodeURIComponent(String(matchId))}`;
}
function normalizeDynamicExternalMatchUrl(value) {
if (typeof value !== "string" || !value.trim()) return "";
try {
const url = new URL(value.trim());
return ["http:", "https:"].includes(url.protocol) ? url.href : "";
} catch (error) {
return "";
}
}
function escapeDynamicHtml(value) {
return String(value ?? "")
.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", ">")
.replaceAll('"', """)
.replaceAll("'", "'");
}
})();