function initDataQuality(): void { const form = document.getElementById("data-quality-form") as HTMLFormElement | null; const selectAll = document.getElementById("data-quality-select-all") as HTMLInputElement | null; const counter = document.getElementById("data-quality-selected"); if (!form || !selectAll) return; const selectAllInput: HTMLInputElement = selectAll; const checkboxes = Array.from(form.querySelectorAll("input.data-quality-checkbox")); function updateCount(): void { const selected = checkboxes.filter((c) => c.checked).length; if (counter) counter.textContent = `${selected} selected`; const allChecked = selected === checkboxes.length && checkboxes.length > 0; const noneChecked = selected === 0; selectAllInput.checked = allChecked; selectAllInput.indeterminate = !allChecked && !noneChecked; } selectAllInput.addEventListener("change", () => { for (const cb of checkboxes) cb.checked = selectAllInput.checked; updateCount(); }); for (const cb of checkboxes) cb.addEventListener("change", updateCount); updateCount(); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", initDataQuality); } else { initDataQuality(); }