function onOptgroupClick(e) {
if(e.target.localName !== "optgroup") return;
const optgroup = e.target;
const select = optgroup.parentElement;
const offset = select.scrollTop;
const children = [...optgroup.children];
const asSelected = children.some(c => !c.selected);
if(!e.metaKey) for(const c of [...select.selectedOptions]) c.selected = false;
for(const c of children) c.selected = asSelected;
select.dispatchEvent(new Event("input"), {bubbles: true});
setTimeout(() => (select.scrollTop = offset), 0);
}