mirror of
https://github.com/codex-team/editor.js
synced 2024-06-10 09:52:36 +02:00
4c0d806a12
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import Module from '../../__module';
|
|
import { Listeners } from '../../../../types/api';
|
|
|
|
/**
|
|
* @class ListenersAPI
|
|
* Provides with methods working with DOM Listener
|
|
*/
|
|
export default class ListenersAPI extends Module {
|
|
/**
|
|
* Available methods
|
|
*
|
|
* @returns {Listeners}
|
|
*/
|
|
public get methods(): Listeners {
|
|
return {
|
|
on: (element: HTMLElement, eventType, handler, useCapture): void => this.on(element, eventType, handler, useCapture),
|
|
off: (element, eventType, handler, useCapture): void => this.off(element, eventType, handler, useCapture),
|
|
};
|
|
}
|
|
|
|
/**
|
|
* adds DOM event listener
|
|
*
|
|
* @param {HTMLElement} element - Element to set handler to
|
|
* @param {string} eventType - event type
|
|
* @param {() => void} handler - event handler
|
|
* @param {boolean} useCapture - capture event or not
|
|
*/
|
|
public on(element: HTMLElement, eventType: string, handler: () => void, useCapture?: boolean): void {
|
|
this.Editor.Listeners.on(element, eventType, handler, useCapture);
|
|
}
|
|
|
|
/**
|
|
* Removes DOM listener from element
|
|
*
|
|
* @param {Element} element - Element to remove handler from
|
|
* @param eventType - event type
|
|
* @param handler - event handler
|
|
* @param {boolean} useCapture - capture event or not
|
|
*/
|
|
public off(element: Element, eventType: string, handler: () => void, useCapture?: boolean): void {
|
|
this.Editor.Listeners.off(element, eventType, handler, useCapture);
|
|
}
|
|
}
|