{"version":3,"sources":["../src/helpers/event.tsx"],"sourcesContent":["import camelcase from 'camelcase';\nimport { useMemo } from 'react';\n\nimport { Listener } from '../listener';\n\ntype Props = {\n  events: string[];\n  listeners: Record<string, (...args: any[]) => any>;\n};\n\nexport function HandleEvents(props: Props) {\n  const { events, listeners: _listeners } = props;\n\n  const eventMap = useMemo(() => createEventMap(events), events);\n  const listeners = Object.fromEntries(Object.entries(_listeners).filter(([key]) => key in eventMap)) as unknown as Record<string, (e: any) => void>;\n\n  return (\n    <>\n      {Object.keys(listeners).map(key => {\n\n        const eventName = eventMap[key];\n        const listener = listeners[key];\n\n        return listener ? <Listener\n          key={key}\n          type={eventName}\n          listener={listener}\n        /> : null;\n      })}\n    </>\n  );\n}\n\n\nfunction createEventMap(events: string[]): Record<string, string> {\n  return events.reduce((acc, eventName) => {\n    const key = camelcase(`on_${eventName}`);\n\n    return {\n      [key]: eventName,\n      ...acc,\n    };\n  }, {});\n}\n"],"mappings":";;;;;AAAA,OAAO,eAAe;AACtB,SAAS,eAAe;AAgBpB,mBAMsB,WANtB;AAPG,SAAS,aAAa,OAAc;AACzC,QAAM,EAAE,QAAQ,WAAW,WAAW,IAAI;AAE1C,QAAM,WAAW,QAAQ,MAAM,eAAe,MAAM,GAAG,MAAM;AAC7D,QAAM,YAAY,OAAO,YAAY,OAAO,QAAQ,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,OAAO,QAAQ,CAAC;AAElG,SACE,gCACG,iBAAO,KAAK,SAAS,EAAE,IAAI,SAAO;AAEjC,UAAM,YAAY,SAAS,GAAG;AAC9B,UAAM,WAAW,UAAU,GAAG;AAE9B,WAAO,WAAW;AAAA,MAAC;AAAA;AAAA,QAEjB,MAAM;AAAA,QACN;AAAA;AAAA,MAFK;AAAA,IAGP,IAAK;AAAA,EACP,CAAC,GACH;AAEJ;AAGA,SAAS,eAAe,QAA0C;AAChE,SAAO,OAAO,OAAO,CAAC,KAAK,cAAc;AACvC,UAAM,MAAM,UAAU,MAAM,SAAS,EAAE;AAEvC,WAAO;AAAA,MACL,CAAC,GAAG,GAAG;AAAA,MACP,GAAG;AAAA,IACL;AAAA,EACF,GAAG,CAAC,CAAC;AACP;","names":[]}