src/signature_event_target.ts
export class SignatureEventTarget {
/* tslint:disable: variable-name */
private _et: EventTarget;
/* tslint:enable: variable-name */
constructor() {
try {
this._et = new EventTarget();
} catch {
// Using document as EventTarget to support iOS 13 and older.
// Because EventTarget constructor just exists at iOS 14 and later.
this._et = document;
}
}
addEventListener(
type: string,
listener: EventListenerOrEventListenerObject | null,
options?: boolean | AddEventListenerOptions,
): void {
this._et.addEventListener(type, listener, options);
}
dispatchEvent(event: Event): boolean {
return this._et.dispatchEvent(event);
}
removeEventListener(
type: string,
callback: EventListenerOrEventListenerObject | null,
options?: boolean | EventListenerOptions,
): void {
this._et.removeEventListener(type, callback, options);
}
}