/** * @module seng-event */ import sengDisposable from 'seng-disposable'; import EventDispatcher from './EventDispatcher'; import AbstractEvent from './AbstractEvent'; import { EventHandlerForEvent, TypesForEvent } from './EventTypings'; /** * Data object that is created on every call to [[EventDispatcher.addEventListener]]. The object is * saved on the [[EventDispatcher.listeners]] object for internal use but is also returned by the * _addEventListener_ method as a way to remove the listener. */ export default class EventListenerData extends sengDisposable { dispatcher: EventDispatcher; type: TypesForEvent; handler: EventHandlerForEvent; useCapture: boolean; priority: number; /** * This property will be set to `true` by the [[EventDispatcher]] this listener is bound to when * the listener is removed. This is to make sure the handler is not called, even if the listener * is removed while dispatching the event. */ isRemoved: boolean; /** * @param dispatcher The EventDispatcher on which this listener listens for events * @param type The type of event this listener responds to * @param handler The handler function that will be called when a matching event is dispatched * @param useCapture Set to the `useCapture` argument passed to [[EventDispatcher.addEventListener|addEventListener]] * @param priority Set to the `priority` argument passed to [[EventDispatcher.addEventListener|addEventListener]]. * Used to sort the listener within the [[EventDispatcher.listeners|listeners]] object of the EventDispatcher */ constructor(dispatcher: EventDispatcher, type: TypesForEvent, handler: EventHandlerForEvent, useCapture: boolean, priority: number); /** * Detaches this event listener from its EventDispatcher. The handler function on this listener will * no longer be called in response to dispatched events. */ dispose(): void; }