@exadel/esl
Version:
Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components
22 lines (21 loc) • 1.06 kB
TypeScript
import type { TypedEventTarget } from '../events';
/** Key to store listeners on the {@link SyntheticEventTarget} instance*/
declare const LISTENERS: unique symbol;
/**
* Synthetic implementation of EventTarget
* Replicates behavior of native event
* Doesn't give explicit access to callback storage
*/
export declare class SyntheticEventTarget<T extends Event = Event> implements TypedEventTarget<T> {
static DEFAULT_EVENT: string;
private readonly [LISTENERS];
protected getEventListeners(): EventListenerOrEventListenerObject[];
protected getEventListeners(type: T['type']): EventListenerOrEventListenerObject[];
hasEventListener(type?: string): boolean;
addEventListener(callback: EventListenerOrEventListenerObject): void;
addEventListener(type: T['type'], callback: EventListenerOrEventListenerObject): void;
removeEventListener(callback: EventListenerOrEventListenerObject): void;
removeEventListener(type: T['type'], callback: EventListenerOrEventListenerObject): void;
dispatchEvent(e: T): boolean;
}
export {};