(function () { const hide = (triggers) => { for (let i = 0; i < triggers.length; i++) { triggers[i].checked = false; } }; const hideIfClickedOutside = (menus, triggers, event) => { for (let i = 0; i < menus.length; i++) { const active = triggers[i].checked === true; const outside = !menus[i].contains(event.target); if (outside && active) hide(triggers); } }; self.addEventListener("scroll", function () { const triggers = document.querySelectorAll("micro-metadata-menu input"); hide(triggers); }); ["click", "touchstart"].forEach(function (event) { self.addEventListener(event, function (event) { const menus = document.querySelectorAll("micro-metadata-menu"); const triggers = document.querySelectorAll("micro-metadata-menu input"); hideIfClickedOutside(menus, triggers, event); }); }); })();