Trilium Frontend API
    Preparing search index...

    Class TooltipManager

    A tooltip manager class for the UI of the editor.

    Note: Most likely you do not have to use the TooltipManager API listed below in order to display tooltips. Popular {@glink framework/architecture/ui-library UI components} support tooltips out-of-the-box via observable properties (see module:ui/button/buttonview~ButtonView#tooltip and module:ui/button/buttonview~ButtonView#tooltipPosition).

    Displaying tooltips

    To display a tooltip, set data-cke-tooltip-text attribute on any DOM element:

    domElement.dataset.ckeTooltipText = 'My tooltip';
    

    The tooltip will show up whenever the user moves the mouse over the element or the element gets focus in DOM.

    Positioning tooltips

    To change the position of the tooltip, use the data-cke-tooltip-position attribute (s, se, sw, n, e, or w):

    domElement.dataset.ckeTooltipText = 'Tooltip to the north';
    domElement.dataset.ckeTooltipPosition = 'n';

    Disabling tooltips

    In order to disable the tooltip temporarily, use the data-cke-tooltip-disabled attribute:

    domElement.dataset.ckeTooltipText = 'Disabled. For now.';
    domElement.dataset.ckeTooltipDisabled = 'true';

    Instant tooltips

    To remove the delay before showing or hiding the tooltip, use the data-cke-tooltip-instant attribute:

    domElement.dataset.ckeTooltipInstant = 'true';
    

    Styling tooltips

    By default, the tooltip has .ck-tooltip class and its text inner .ck-tooltip__text.

    If your tooltip requires custom styling, using data-cke-tooltip-class attribute will add additional class to the balloon displaying the tooltip:

    domElement.dataset.ckeTooltipText = 'Tooltip with a red text';
    domElement.dataset.ckeTooltipClass = 'my-class';
    .ck.ck-tooltip.my-class { color: red }
    

    Note: This class is a singleton. All editor instances re-use the same instance loaded by module:ui/editorui/editorui~EditorUI of the first editor.

    Hierarchy (View Summary)

    Index

    Constructors

    • Creates an instance of the tooltip manager.

      Parameters

      • editor: Editor

      Returns TooltipManager

    Properties

    balloonPanelView: BalloonPanelView

    The instance of the balloon panel that renders and positions the tooltip.

    tooltipTextView: View<HTMLElement> & { text: string }

    The view rendering text of the tooltip.

    defaultBalloonPositions: Record<string, PositioningFunction>

    A set of default module:utils/dom/position~PositioningFunction positioning functions used by the TooltipManager to pin tooltips in different positions.

    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

    • Destroys the tooltip manager.

      Note: The manager singleton cannot be destroyed until all editors that use it are destroyed.

      Parameters

      • editor: Editor

        The editor the manager was created for.

      Returns void

    • 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

    • Returns #balloonPanelView module:utils/dom/position~PositioningFunction positioning functions for a given position name.

      Parameters

      Returns PositioningFunction[]

      Positioning functions to be used by the #balloonPanelView.