const dedupeWithin = (root: ParentNode): void => { const seen = new Set(); const elements = root.querySelectorAll(":scope > [data-id]"); elements.forEach((item) => { const id = item.dataset.id; if (!id) { return; } if (seen.has(id)) { item.remove(); return; } seen.add(id); }); }; const dedupe = (): void => { const containers = new Set(); const elements = document.querySelectorAll("[data-id]"); elements.forEach((item) => { if (item.parentElement) { containers.add(item.parentElement); } }); containers.forEach((container) => { dedupeWithin(container); }); }; if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", dedupe); } else { dedupe(); } window.addEventListener("load", dedupe);