document.addEventListener("DOMContentLoaded", () => { const dataElement = document.getElementById("consumption-data"); let data = { scenarios: [], consumption: {} }; if (dataElement) { try { const parsed = JSON.parse(dataElement.textContent || "{}"); if (parsed && typeof parsed === "object") { data = { scenarios: Array.isArray(parsed.scenarios) ? parsed.scenarios : [], consumption: parsed.consumption && typeof parsed.consumption === "object" ? parsed.consumption : {}, }; } } catch (error) { console.error("Unable to parse consumption data", error); } } const consumptionByScenario = data.consumption; const filterSelect = document.getElementById("consumption-scenario-filter"); const tableWrapper = document.getElementById("consumption-table-wrapper"); const tableBody = document.getElementById("consumption-table-body"); const emptyState = document.getElementById("consumption-empty"); const form = document.getElementById("consumption-form"); const feedbackEl = document.getElementById("consumption-feedback"); const showFeedback = (message, type = "success") => { if (!feedbackEl) { return; } feedbackEl.textContent = message; feedbackEl.classList.remove("hidden", "success", "error"); feedbackEl.classList.add(type); }; const hideFeedback = () => { if (!feedbackEl) { return; } feedbackEl.classList.add("hidden"); feedbackEl.textContent = ""; }; const formatAmount = (value) => Number(value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, }); const renderConsumptionRows = (scenarioId) => { if (!tableBody || !tableWrapper || !emptyState) { return; } const key = String(scenarioId); const records = consumptionByScenario[key] || []; tableBody.innerHTML = ""; if (!records.length) { emptyState.textContent = "No consumption records for this scenario yet."; emptyState.classList.remove("hidden"); tableWrapper.classList.add("hidden"); return; } emptyState.classList.add("hidden"); tableWrapper.classList.remove("hidden"); records.forEach((record) => { const row = document.createElement("tr"); row.innerHTML = `