// Utilities import { eventName, isOn } from "./helpers.mjs"; const handlers = new WeakMap(); export function bindProps(el, props) { Object.keys(props).forEach(k => { if (isOn(k)) { const name = eventName(k); const handler = handlers.get(el); if (props[k] == null) { handler?.forEach(v => { const [n, fn] = v; if (n === name) { el.removeEventListener(name, fn); handler.delete(v); } }); } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) { el.addEventListener(name, props[k]); const _handler = handler || new Set(); _handler.add([name, props[k]]); if (!handlers.has(el)) handlers.set(el, _handler); } } else { if (props[k] == null) { el.removeAttribute(k); } else { el.setAttribute(k, props[k]); } } }); } export function unbindProps(el, props) { Object.keys(props).forEach(k => { if (isOn(k)) { const name = eventName(k); const handler = handlers.get(el); handler?.forEach(v => { const [n, fn] = v; if (n === name) { el.removeEventListener(name, fn); handler.delete(v); } }); } else { el.removeAttribute(k); } }); } //# sourceMappingURL=bindProps.mjs.map