{"version":3,"file":"bindProps.mjs","names":["eventName","isOn","handlers","WeakMap","bindProps","el","props","Object","keys","forEach","k","name","handler","get","v","n","fn","removeEventListener","delete","some","addEventListener","_handler","Set","add","has","set","removeAttribute","setAttribute","unbindProps"],"sources":["../../src/util/bindProps.ts"],"sourcesContent":["// Utilities\nimport { eventName, isOn } from '@/util/helpers'\n\nconst handlers = new WeakMap void]>>()\n\nexport function bindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n if (props[k] == null) {\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {\n el.addEventListener(name, props[k])\n const _handler = handler || new Set()\n _handler.add([name, props[k]])\n if (!handlers.has(el)) handlers.set(el, _handler)\n }\n } else {\n if (props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, props[k])\n }\n }\n })\n}\n\nexport function unbindProps (el: HTMLElement, props: Record) {\n Object.keys(props).forEach(k => {\n if (isOn(k)) {\n const name = eventName(k)\n const handler = handlers.get(el)\n handler?.forEach(v => {\n const [n, fn] = v\n if (n === name) {\n el.removeEventListener(name, fn)\n handler.delete(v)\n }\n })\n } else {\n el.removeAttribute(k)\n }\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,SAAS,EAAEC,IAAI;AAExB,MAAMC,QAAQ,GAAG,IAAIC,OAAO,EAA0C;AAEtE,OAAO,SAASC,SAASA,CAAEC,EAAe,EAAEC,KAA0B,EAAE;EACtEC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,CAAC,IAAI;IAC9B,IAAIT,IAAI,CAACS,CAAC,CAAC,EAAE;MACX,MAAMC,IAAI,GAAGX,SAAS,CAACU,CAAC,CAAC;MACzB,MAAME,OAAO,GAAGV,QAAQ,CAACW,GAAG,CAACR,EAAE,CAAC;MAChC,IAAIC,KAAK,CAACI,CAAC,CAAC,IAAI,IAAI,EAAE;QACpBE,OAAO,EAAEH,OAAO,CAACK,CAAC,IAAI;UACpB,MAAM,CAACC,CAAC,EAAEC,EAAE,CAAC,GAAGF,CAAC;UACjB,IAAIC,CAAC,KAAKJ,IAAI,EAAE;YACdN,EAAE,CAACY,mBAAmB,CAACN,IAAI,EAAEK,EAAE,CAAC;YAChCJ,OAAO,CAACM,MAAM,CAACJ,CAAC,CAAC;UACnB;QACF,CAAC,CAAC;MACJ,CAAC,MAAM,IAAI,CAACF,OAAO,IAAI,CAAC,CAAC,GAAGA,OAAO,CAAC,EAAEO,IAAI,CAACL,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAKH,IAAI,IAAIG,CAAC,CAAC,CAAC,CAAC,KAAKR,KAAK,CAACI,CAAC,CAAC,CAAC,EAAE;QACnFL,EAAE,CAACe,gBAAgB,CAACT,IAAI,EAAEL,KAAK,CAACI,CAAC,CAAC,CAAC;QACnC,MAAMW,QAAQ,GAAGT,OAAO,IAAI,IAAIU,GAAG,EAAE;QACrCD,QAAQ,CAACE,GAAG,CAAC,CAACZ,IAAI,EAAEL,KAAK,CAACI,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAACR,QAAQ,CAACsB,GAAG,CAACnB,EAAE,CAAC,EAAEH,QAAQ,CAACuB,GAAG,CAACpB,EAAE,EAAEgB,QAAQ,CAAC;MACnD;IACF,CAAC,MAAM;MACL,IAAIf,KAAK,CAACI,CAAC,CAAC,IAAI,IAAI,EAAE;QACpBL,EAAE,CAACqB,eAAe,CAAChB,CAAC,CAAC;MACvB,CAAC,MAAM;QACLL,EAAE,CAACsB,YAAY,CAACjB,CAAC,EAAEJ,KAAK,CAACI,CAAC,CAAC,CAAC;MAC9B;IACF;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAASkB,WAAWA,CAAEvB,EAAe,EAAEC,KAA0B,EAAE;EACxEC,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,CAAC,IAAI;IAC9B,IAAIT,IAAI,CAACS,CAAC,CAAC,EAAE;MACX,MAAMC,IAAI,GAAGX,SAAS,CAACU,CAAC,CAAC;MACzB,MAAME,OAAO,GAAGV,QAAQ,CAACW,GAAG,CAACR,EAAE,CAAC;MAChCO,OAAO,EAAEH,OAAO,CAACK,CAAC,IAAI;QACpB,MAAM,CAACC,CAAC,EAAEC,EAAE,CAAC,GAAGF,CAAC;QACjB,IAAIC,CAAC,KAAKJ,IAAI,EAAE;UACdN,EAAE,CAACY,mBAAmB,CAACN,IAAI,EAAEK,EAAE,CAAC;UAChCJ,OAAO,CAACM,MAAM,CAACJ,CAAC,CAAC;QACnB;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACLT,EAAE,CAACqB,eAAe,CAAChB,CAAC,CAAC;IACvB;EACF,CAAC,CAAC;AACJ"}