{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-particles/src/client/reactive/utils/event-target.js"],"names":["EventTarget","constructor","callbacks","Map","_callbacksFor","type","getOrCreate","Set","addEventListener","callback","add","removeEventListener","delete","dispatchEvent","params","forEach","apply","undefined","getEventListeners","Array","from"],"mappings":";;;;;;;;AAAA;;;AAGe,YAAMA,WAAN,CAAkB;AAC/BC,sBAAc;AACZ,eAAKC,SAAL,GAAiB,IAAIC,GAAJ,EAAjB;AACD;;AAEDC,sBAAcC,IAAd,EAAoB;AAClB,iBAAO,KAAKH,SAAL,CAAeI,WAAf,CAA2BD,IAA3B,EAAiC,MAAM,IAAIE,GAAJ,EAAvC,CAAP;AACD;;AAEDC,yBAAiBH,IAAjB,EAAuBI,QAAvB,EAAiC;AAC/B,gBAAMP,YAAY,KAAKE,aAAL,CAAmBC,IAAnB,CAAlB;AACAH,oBAAUQ,GAAV,CAAcD,QAAd;AACD;;AAEDE,4BAAoBN,IAApB,EAA0BI,QAA1B,EAAoC;AAClC,gBAAMP,YAAY,KAAKE,aAAL,CAAmBC,IAAnB,CAAlB;AACAH,oBAAUU,MAAV,CAAiBH,QAAjB;AACD;;AAEDI,sBAAcR,IAAd,EAAoB,GAAGS,MAAvB,EAA+B;AAC7B,gBAAMZ,YAAY,KAAKE,aAAL,CAAmBC,IAAnB,CAAlB;AACAH,oBAAUa,OAAV,CAAkBN,YAAYA,SAASO,KAAT,CAAeC,SAAf,EAA0BH,MAA1B,CAA9B;AACD;;AAEDI,0BAAkBb,IAAlB,EAAwB;AACtB,iBAAOc,MAAMC,IAAN,CAAW,KAAKhB,aAAL,CAAmBC,IAAnB,CAAX,CAAP;AACD;AA1B8B;;yBAAZL,W;;;;;;;;6BAAAA,4C","file":"event-target.js","sourcesContent":["/**\n * A slightly smarter EventTarget class\n */\nexport default class EventTarget {\n  constructor() {\n    this.callbacks = new Map();\n  }\n  \n  _callbacksFor(type) {\n    return this.callbacks.getOrCreate(type, () => new Set());\n  }\n\n  addEventListener(type, callback) {\n    const callbacks = this._callbacksFor(type);\n    callbacks.add(callback);\n  }\n\n  removeEventListener(type, callback) {\n    const callbacks = this._callbacksFor(type);\n    callbacks.delete(callback);\n  }\n\n  dispatchEvent(type, ...params) {\n    const callbacks = this._callbacksFor(type);\n    callbacks.forEach(callback => callback.apply(undefined, params));\n  }\n\n  getEventListeners(type) {\n    return Array.from(this._callbacksFor(type));\n  }\n}\n"]}