diff --git a/src/modules/esl-event-listener/core/api.ts b/src/modules/esl-event-listener/core/api.ts index 76e7c2e17..80011ddb3 100644 --- a/src/modules/esl-event-listener/core/api.ts +++ b/src/modules/esl-event-listener/core/api.ts @@ -5,7 +5,6 @@ import {getAutoDescriptors, isEventDescriptor, initDescriptor} from './descripto import type { ESLListenerHandler, - ESLListenerCriteria, ESLListenerDescriptor, ESLListenerDescriptorFn } from './types'; @@ -41,9 +40,7 @@ export class ESLEventUtils { * @param host - host object (listeners context) to associate subscription * @param criteria - optional set of criteria {@link ESLListenerCriteria} to filter listeners list */ - public static listeners(host: object, ...criteria: ESLListenerCriteria[]): ESLEventListener[] { - return ESLEventListener.get(host, ...criteria); - } + public static listeners = ESLEventListener.get; /** * Subscribes all auto descriptors of the host @@ -105,11 +102,7 @@ export class ESLEventUtils { * @param host - host element that stores subscriptions (listeners context) * @param criteria - optional set of criteria {@link ESLListenerCriteria} to filter listeners to remove */ - public static unsubscribe(host: object, ...criteria: ESLListenerCriteria[]): ESLEventListener[] { - const listeners = ESLEventListener.get(host, ...criteria); - listeners.forEach((listener) => listener.unsubscribe()); - return listeners; - } + public static unsubscribe = ESLEventListener.unsubscribe; } /** @deprecated alias for {@link ESLEventUtils} */ diff --git a/src/modules/esl-event-listener/core/listener.ts b/src/modules/esl-event-listener/core/listener.ts index 789717dd3..7bdffdd84 100644 --- a/src/modules/esl-event-listener/core/listener.ts +++ b/src/modules/esl-event-listener/core/listener.ts @@ -107,7 +107,7 @@ export class ESLEventListener implements ESLListenerDefinition, EventListenerObj : handlerFull; } - /** Executes handler if the passed event is accepted by the selector */ + /** Executes a handler if the passed event is accepted by the selector */ protected handleDelegation(e: Event, handler: EventListener): void { const {delegate} = this; const target = e.target; @@ -153,7 +153,7 @@ export class ESLEventListener implements ESLListenerDefinition, EventListenerObj if (!criteria.length) return listeners; return listeners.filter((listener) => criteria.every(listener.matches, listener)); } - /** Adds listener to the listener store of the host object */ + /** Adds a listener to the listener store of the host object */ protected static add(host: object, instance: ESLEventListener): void { if (!isObject(host)) return; if (!Object.hasOwnProperty.call(host, LISTENERS)) (host as any)[LISTENERS] = []; @@ -183,6 +183,17 @@ export class ESLEventListener implements ESLListenerDefinition, EventListenerObj return listeners.filter((listener) => listener.subscribe()); } + /** + * Unsubscribes {@link ESLEventListener}(s) from the object + * @param host - host element that stores subscriptions (listeners context) + * @param criteria - optional set of criteria {@link ESLListenerCriteria} to filter listeners to remove + */ + public static unsubscribe(host: object, ...criteria: ESLListenerCriteria[]): ESLEventListener[] { + const listeners = ESLEventListener.get(host, ...criteria); + listeners.forEach((listener) => listener.unsubscribe()); + return listeners; + } + /** Creates or resolves existing event listeners by handler and descriptors */ public static createOrResolve( host: object,