Trilium Frontend API
    Preparing search index...

    Interface DomEmitter

    Interface representing classes which mix in module:utils/dom/emittermixin~DomEmitterMixin.

    Can be easily implemented by a class by mixing the module:utils/dom/emittermixin~DomEmitterMixin mixin.

    class MyClass extends DomEmitterMixin( OtherBaseClass ) {
    // This class now implements the `Emitter` interface.
    }
    interface DomEmitter {
        delegate(...events: string[]): EmitterMixinDelegateChain;
        fire<TEvent extends BaseEvent>(
            eventOrInfo: GetNameOrEventInfo<TEvent>,
            ...args: TEvent["args"],
        ): GetEventInfo<TEvent>["return"];
        listenTo<K extends keyof DomEventMap>(
            emitter: Node | EventTarget | Window,
            event: K,
            callback: (this: this, ev: EventInfo, event: DomEventMap[K]) => void,
            options?: CallbackOptions & { useCapture?: boolean; usePassive?: boolean },
        ): void;
        listenTo<TEvent extends BaseEvent>(
            emitter: Emitter,
            event: TEvent["name"],
            callback: GetCallback<TEvent>,
            options?: CallbackOptions,
        ): void;
        off(event: string, callback: Function): void;
        on<TEvent extends BaseEvent>(
            event: TEvent["name"],
            callback: GetCallback<TEvent>,
            options?: GetCallbackOptions<TEvent>,
        ): void;
        once<TEvent extends BaseEvent>(
            event: TEvent["name"],
            callback: GetCallback<TEvent>,
            options?: GetCallbackOptions<TEvent>,
        ): void;
        stopDelegating(event?: string, emitter?: Emitter): void;
        stopListening(
            emitter?: Node | EventTarget | Emitter | Window,
            event?: string,
            callback?: Function,
        ): void;
    }

    Hierarchy (View Summary)

    Index

    Methods

    • Delegates selected events to another module:utils/emittermixin~Emitter. For instance:

      emitterA.delegate( 'eventX' ).to( emitterB );
      emitterA.delegate( 'eventX', 'eventY' ).to( emitterC );

      then eventX is delegated (fired by) emitterB and emitterC along with data:

      emitterA.fire( 'eventX', data );
      

      and eventY is delegated (fired by) emitterC along with data:

      emitterA.fire( 'eventY', data );
      

      Parameters

      • ...events: string[]

        Event names that will be delegated to another emitter.

      Returns EmitterMixinDelegateChain

    • Fires an event, executing all callbacks registered for it.

      The first parameter passed to callbacks is an module:utils/eventinfo~EventInfo object, followed by the optional args provided in the fire() method call.

      Type Parameters

      • TEvent extends BaseEvent

        The type describing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      • eventOrInfo: GetNameOrEventInfo<TEvent>

        The name of the event or EventInfo object if event is delegated.

      • ...args: TEvent["args"]

        Additional arguments to be passed to the callbacks.

      Returns GetEventInfo<TEvent>["return"]

      By default the method returns undefined. However, the return value can be changed by listeners through modification of the module:utils/eventinfo~EventInfo#return evt.return's property (the event info is the first param of every callback).

    • Registers a callback function to be executed when an event is fired in a specific Emitter or DOM Node. It is backwards compatible with module:utils/emittermixin~Emitter#listenTo.

      Type Parameters

      Parameters

      • emitter: Node | EventTarget | Window

        The object that fires the event.

      • event: K

        The name of the event.

      • callback: (this: this, ev: EventInfo, event: DomEventMap[K]) => void

        The function to be called on event.

      • Optionaloptions: CallbackOptions & { useCapture?: boolean; usePassive?: boolean }

        Additional options.

        • Optional ReadonlyuseCapture?: boolean

          Indicates that events of this type will be dispatched to the registered listener before being dispatched to any EventTarget beneath it in the DOM tree.

        • Optional ReadonlyusePassive?: boolean

          Indicates that the function specified by listener will never call preventDefault() and prevents blocking browser's main thread by this event handler.

      Returns void

      HTML_EMITTER

    • Registers a callback function to be executed when an event is fired in a specific (emitter) object.

      Events can be grouped in namespaces using :. When namespaced event is fired, it additionally fires all callbacks for that namespace.

      // myEmitter.on( ... ) is a shorthand for myEmitter.listenTo( myEmitter, ... ).
      myEmitter.on( 'myGroup', genericCallback );
      myEmitter.on( 'myGroup:myEvent', specificCallback );

      // genericCallback is fired.
      myEmitter.fire( 'myGroup' );
      // both genericCallback and specificCallback are fired.
      myEmitter.fire( 'myGroup:myEvent' );
      // genericCallback is fired even though there are no callbacks for "foo".
      myEmitter.fire( 'myGroup:foo' );

      An event callback can module:utils/eventinfo~EventInfo#stop stop the event and set the module:utils/eventinfo~EventInfo#return return value of the #fire method.

      Type Parameters

      • TEvent extends BaseEvent

        The type describing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

      DOM_EMITTER

    • Stops executing the callback on the given event. Shorthand for #stopListening this.stopListening( this, event, callback ).

      Parameters

      • event: string

        The name of the event.

      • callback: Function

        The function to stop being called.

      Returns void

    • Registers a callback function to be executed when an event is fired.

      Shorthand for #listenTo this.listenTo( this, event, callback, options ) (it makes the emitter listen on itself).

      Type Parameters

      • TEvent extends BaseEvent

        The type descibing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

    • Registers a callback function to be executed on the next time the event is fired only. This is similar to calling #on followed by #off in the callback.

      Type Parameters

      • TEvent extends BaseEvent

        The type descibing the event. See module:utils/emittermixin~BaseEvent.

      Parameters

      Returns void

    • Stops delegating events. It can be used at different levels:

      • To stop delegating all events.
      • To stop delegating a specific event to all emitters.
      • To stop delegating a specific event to a specific emitter.

      Parameters

      • Optionalevent: string

        The name of the event to stop delegating. If omitted, stops it all delegations.

      • Optionalemitter: Emitter

        (requires event) The object to stop delegating a particular event to. If omitted, stops delegation of event to all emitters.

      Returns void

    • Stops listening for events. It can be used at different levels: It is backwards compatible with module:utils/emittermixin~Emitter#listenTo.

      • To stop listening to a specific callback.
      • To stop listening to a specific event.
      • To stop listening to all events fired by a specific object.
      • To stop listening to all events fired by all objects.

      Parameters

      • Optionalemitter: Node | EventTarget | Emitter | Window

        The object to stop listening to. If omitted, stops it for all objects.

      • Optionalevent: string

        (Requires the emitter) The name of the event to stop listening to. If omitted, stops it for all events from emitter.

      • Optionalcallback: Function

        (Requires the event) The function to be removed from the call list for the given event.

      Returns void

      DOM_STOP