Provides and manages browser window wide context menu functionality. The best way to create a context menu is to attach the source KeyboardEvent or MouseEvent / PointerEvent as data in TJSContextMenu.create. This allows proper keyboard handling across browsers supporting the context menu key. A A11yFocusSource data object is generated which allows tracking of the source element that triggered the context menu allowing focus to return to the source when the context menu is closed. This A11yFocusSource object is also forwarded on through the onPress callback and is intended to be supplied as SvelteApplication options particularly for modal dialogs allowing focus to return to the original source after the modal dialog is closed.

Constructors

Methods

Constructors

Methods

  • Creates and manages a browser wide context menu. The best way to create the context menu is to pass in the source DOM event as it is processed for the location of the context menu to display. Likewise, a A11yFocusSource object is generated that allows focus to be returned to the source location. You may supply a default focus target as a fallback via focusEl.

    Parameters

    • Optional opts: {
          duration?: number;
          easing?: EasingFunction;
          event?: MouseEvent | KeyboardEvent;
          focusDebug?: boolean;
          focusEl?: string | HTMLElement;
          id?: string;
          items?: Iterable<TJSContextMenuItemData>;
          keyCode?: string;
          styles?: Record<string, string>;
          x?: number;
          y?: number;
          zIndex?: number;
      }

      Optional parameters.

      • Optional duration?: number

        Transition option for duration of transition.

      • Optional easing?: EasingFunction

        Transition option for easing function.

      • Optional event?: MouseEvent | KeyboardEvent

        The source MouseEvent or KeyboardEvent.

      • Optional focusDebug?: boolean

        When true the associated A11yFocusSource object will log focus target data when applied.

      • Optional focusEl?: string | HTMLElement

        A specific HTMLElement or selector string as the default focus target.

      • Optional id?: string

        A custom CSS ID to add to the menu. This allows CSS style targeting.

      • Optional items?: Iterable<TJSContextMenuItemData>

        Menu items to display.

      • Optional keyCode?: string

        Key to select menu items.

      • Optional styles?: Record<string, string>

        Optional inline styles to apply.

      • Optional x?: number

        X position override for the top / left of the menu.

      • Optional y?: number

        Y position override for the top / left of the menu.

      • Optional zIndex?: number

        Z-index for context menu.

    Returns void