33 lines
890 B
JavaScript
33 lines
890 B
JavaScript
export class EventTargetShim {
|
|
constructor() {
|
|
const delegate = document.createDocumentFragment();
|
|
|
|
/**
|
|
*
|
|
* @param {string} type
|
|
* @param {EventListener} listener
|
|
* @param {Object} [opts]
|
|
*/
|
|
const delegatedAddEventListener = (type, listener, opts) =>
|
|
delegate.addEventListener(type, listener, opts);
|
|
|
|
/**
|
|
* @param {string} type
|
|
* @param {EventListener} listener
|
|
* @param {Object} [opts]
|
|
*/
|
|
const delegatedRemoveEventListener = (type, listener, opts) =>
|
|
delegate.removeEventListener(type, listener, opts);
|
|
|
|
/**
|
|
* @param {Event|CustomEvent} event
|
|
*/
|
|
const delegatedDispatchEvent = event => delegate.dispatchEvent(event);
|
|
|
|
this.addEventListener = delegatedAddEventListener;
|
|
|
|
this.removeEventListener = delegatedRemoveEventListener;
|
|
|
|
this.dispatchEvent = delegatedDispatchEvent;
|
|
}
|
|
}
|