Sign up (with export icon)

DomEventObserver

Api-class iconclass

Base class for DOM event observers. This class handles adding listeners to DOM elements, disabling and re-enabling events. Child class needs to define DOM event type and callback.

For instance:

class ClickObserver extends DomEventObserver<'click'> {
	// It can also be defined as a normal property in the constructor.
	get domEventType(): 'click' {
		return 'click';
	}

	onDomEvent( domEvent: MouseEvent ): void {
		this.fire( 'click', domEvent );
	}
}
Copy code

Type parameters

  • Chevron-right icon

    EventType: extends keyof HTMLElementEventMap

    DOM Event type name or an union of those.

  • Chevron-right icon

    AdditionalData: extends object = object

    Additional data passed along with the event.

Properties

  • Chevron-right icon

    document: ViewDocument
    readonlyinherited

  • Chevron-right icon

    domEventType: EventType | readonly Array<EventType>
    readonly

    Type of the DOM event the observer should listen to. Array of types can be defined if the observer should listen to multiple DOM events.

  • Chevron-right icon

    isEnabled: boolean
    readonlyinherited

    The state of the observer. If it is disabled, no events will be fired.

  • Chevron-right icon

    useCapture: boolean

    If set to true DOM events will be listened on the capturing phase. Default value is false.

  • Chevron-right icon

    usePassive: boolean

    If set to true, indicates that the function specified by listener will never call preventDefault(). Default value is false.

  • Chevron-right icon

    view: EditingView
    readonlyinherited

    An instance of the view controller.

Methods

  • Chevron-right icon

    constructor( view )
    inherited

    Creates an instance of the observer.

    Type parameters

    EventType: extends keyof HTMLElementEventMap

    DOM Event type name or an union of those.

    AdditionalData: extends object = object

    Additional data passed along with the event.

    Parameters

    view: EditingView
  • Chevron-right icon

    checkShouldIgnoreEventFromTarget( domTarget ) → boolean
    inherited

    Checks whether a given DOM event should be ignored (should not be turned into a synthetic view document event).

    Currently, an event will be ignored only if its target or any of its ancestors has the data-cke-ignore-events attribute. This attribute can be used inside the structures generated by ViewDowncastWriter#createUIElement() to ignore events fired within a UI that should be excluded from CKEditor 5's realms.

    Parameters

    domTarget: Node | null

    The DOM event target to check (usually an element, sometimes a text node and potentially sometimes a document, too).

    Returns

    boolean

    Whether this event should be ignored by the observer.

  • Chevron-right icon

    delegate( events ) → EmitterMixinDelegateChain
    inherited

    Delegates selected events to another Emitter. For instance:

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

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

    emitterA.fire( 'eventX', data );
    Copy code

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

    emitterA.fire( 'eventY', data );
    Copy code

    Parameters

    events: Array<string>

    Event names that will be delegated to another emitter.

    Returns

    EmitterMixinDelegateChain
  • Chevron-right icon

    destroy() → void
    inherited

    Disables and destroys the observer, among others removes event listeners created by the observer.

    Returns

    void
  • Chevron-right icon

    disable() → void
    inherited

    Disables the observer. This method is called before rendering to prevent firing events during rendering.

    Returns

    void

    Related:

  • Chevron-right icon

    enable() → void
    inherited

    Enables the observer. This method is called when the observer is registered to the EditingView and after rendering (all observers are disabled before rendering).

    A typical use case for disabling observers is that mutation observers need to be disabled for the rendering. However, a child class may not need to be disabled, so it can implement an empty method.

    Returns

    void

    Related:

  • Chevron-right icon

    fire( eventType, domEvent, additionalData? ) → void

    Calls Document#fire() if observer is enabled.

    Parameters

    eventType: string | EventInfo<string, unknown>

    The event type (name).

    domEvent: Event

    The DOM event.

    additionalData?: AdditionalData

    The additional data which should extend the event data object.

    Returns

    void

    Related:

  • Chevron-right icon

    listenTo( emitter, event, callback, options? ) → void
    inherited

    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' );
    Copy code

    An event callback can stop the event and set the return value of the fire method.

    Type parameters

    TEvent: extends BaseEvent

    The type describing the event. See BaseEvent.

    Parameters

    emitter: Emitter

    The object that fires the event.

    event: TEvent[ 'name' ]

    The name of the event.

    callback: GetCallback<TEvent>

    The function to be called on event.

    options?: CallbackOptions

    Additional options.

    Returns

    void
  • Chevron-right icon

    listenTo( emitter, event, callback, options? ) → void
    inherited

    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' );
    Copy code

    An event callback can stop the event and set the return value of the fire method.

    Type parameters

    TEvent: extends BaseEvent

    The type describing the event. See BaseEvent.

    Parameters

    emitter: Emitter

    The object that fires the event.

    event: TEvent[ 'name' ]

    The name of the event.

    callback: GetCallback<TEvent>

    The function to be called on event.

    options?: GetCallbackOptions<TEvent>

    Additional options.

    Returns

    void
  • Chevron-right icon

    listenTo( emitter, event, callback, options? ) → void
    inherited

    Registers a callback function to be executed when an event is fired in a specific Emitter or DOM Node. It is backwards compatible with listenTo.

    Type parameters

    K: extends keyof DomEventMap

    Parameters

    emitter: Window | EventTarget | Node

    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.

    options?: CallbackOptions & object

    Additional options.

    Returns

    void
  • Chevron-right icon

    observe( domElement ) → void

    Starts observing given DOM element.

    Parameters

    domElement: HTMLElement

    DOM element to observe.

    Returns

    void
  • Chevron-right icon

    off( event, callback ) → void
    inherited

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

    Parameters

    event: string

    The name of the event.

    callback: Function

    The function to stop being called.

    Returns

    void
  • Chevron-right icon

    on( event, callback, options? ) → void
    inherited

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

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

    Type parameters

    TEvent: extends BaseEvent

    The type descibing the event. See BaseEvent.

    Parameters

    event: TEvent[ 'name' ]

    The name of the event.

    callback: GetCallback<TEvent>

    The function to be called on event.

    options?: GetCallbackOptions<TEvent>

    Additional options.

    Returns

    void
  • Chevron-right icon

    onDomEvent( event ) → void

    Callback which should be called when the DOM event occurred. Note that the callback will not be called if observer is not enabled.

    Parameters

    event: HTMLElementEventMap[ EventType ]

    Returns

    void

    Related:

  • Chevron-right icon

    once( event, callback, options? ) → void
    inherited

    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 BaseEvent.

    Parameters

    event: TEvent[ 'name' ]

    The name of the event.

    callback: GetCallback<TEvent>

    The function to be called on event.

    options?: GetCallbackOptions<TEvent>

    Additional options.

    Returns

    void
  • Chevron-right icon

    stopDelegating( event?, emitter? ) → void
    inherited

    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

    event?: string

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

    emitter?: Emitter

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

    Returns

    void
  • Chevron-right icon

    stopListening( emitter?, event?, callback? ) → void
    inherited

    Stops listening for events. It can be used at different levels:

    • 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

    emitter?: Emitter

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

    event?: string

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

    callback?: Function

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

    Returns

    void
  • Chevron-right icon

    stopListening( emitter?, event?, callback? ) → void
    inherited

    Stops listening for events. It can be used at different levels: It is backwards compatible with 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

    emitter?: Window | EventTarget | Node | Emitter

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

    event?: string

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

    callback?: Function

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

    Returns

    void
  • Chevron-right icon

    stopObserving( domElement ) → void

    Stops observing given DOM element.

    Parameters

    domElement: HTMLElement

    Returns

    void