| 123456789101112131415161718192021222324252627282930313233343536373839404142 | /** *  Events allow for applications to use the observer pattern, which *  allows subscribing and publishing events, outside the normal *  execution paths. * *  @_section api/utils/events:Events  [about-events] */import { defineProperties } from "./properties.js";/** *  When an [[EventEmitterable]] triggers a [[Listener]], the *  callback always ahas one additional argument passed, which is *  an **EventPayload**. */export class EventPayload {    /**     *  The event filter.     */    filter;    /**     *  The **EventEmitterable**.     */    emitter;    #listener;    /**     *  Create a new **EventPayload** for %%emitter%% with     *  the %%listener%% and for %%filter%%.     */    constructor(emitter, listener, filter) {        this.#listener = listener;        defineProperties(this, { emitter, filter });    }    /**     *  Unregister the triggered listener for future events.     */    async removeListener() {        if (this.#listener == null) {            return;        }        await this.emitter.off(this.filter, this.#listener);    }}//# sourceMappingURL=events.js.map
 |