egroupware_official/api/js/etemplate/Et2Widget/event.ts
2023-12-11 08:18:38 -07:00

23 lines
466 B
TypeScript

/**
* Waits for a specific event to be emitted from an element. Ignores events that bubble up from child elements.
*
* Copied from Shoelace
* /src/internal/event.ts
*/
export function waitForEvent(el : HTMLElement, eventName : string)
{
return new Promise<void>(resolve =>
{
function done(event : Event)
{
if(event.target === el)
{
el.removeEventListener(eventName, done);
resolve();
}
}
el.addEventListener(eventName, done);
});
}