Options
All
  • Public
  • Public/Protected
  • All
Menu

The sidebar directory which organizes and displays world-level ChatMessage documents.

see

{Sidebar}

param [options]

Application configuration options.

Hierarchy

Index

Constructors

Accessors

  • A reference to the Messages collection that the chat log displays

    Returns Messages

  • get id(): string
  • override

    Returns string

  • get element(): jQuery
  • Return the active application element, if it currently exists in the DOM

    Returns jQuery

  • get template(): string
  • The path to the HTML template file which should be used to render the inner content of the app

    Returns string

  • get popOut(): boolean
  • Control the rendering style of the application. If popOut is true, the application is rendered in its own wrapper window, otherwise only the inner app content is rendered

    Returns boolean

  • get rendered(): boolean
  • Return a flag for whether the Application instance is currently rendered

    Returns boolean

  • get title(): string
  • An Application window should define its own title definition logic which may be dynamic depending on its data

    Returns string

Methods

  • getData(options?: {}): Promise<any>
  • _render(force: any, options: any): Promise<void>
  • _renderInner(data: any): Promise<jQuery>
  • deleteMessage(messageId: string, [deleteAll]?: boolean): void
  • Delete a single message from the chat log

    Parameters

    • messageId: string

      The ChatMessage document to remove from the log

    • [deleteAll]: boolean = {}

      Is this part of a flush operation to delete all messages?

    Returns void

  • Trigger a notification that alerts the user visually and audibly that a new chat log message has been posted

    Parameters

    • message: ChatMessage

      The message generating a notification

    Returns void

  • postOne(message: ChatMessage, [options={}]?: { before: string; notify: boolean }): Promise<void>
  • Post a single chat message to the log

    Parameters

    • message: ChatMessage

      A ChatMessage document instance to post to the log

    • [options={}]: { before: string; notify: boolean } = {}

      Additional options for how the message is posted to the log

      • before: string
      • notify: boolean

    Returns Promise<void>

    A Promise which resolves once the message is posted

  • updateMessage(message: ChatMessage, notify?: boolean): Promise<void>
  • Update the content of a previously posted message after its data has been replaced

    Parameters

    • message: ChatMessage

      The ChatMessage instance to update

    • notify: boolean = false

      Trigger a notification which shows the log as having a new unread message

    Returns Promise<void>

  • updateTimestamps(): void
  • Update the displayed timestamps for every displayed message in the chat log. Timestamps are displayed in a humanized "timesince" format.

    Returns void

  • activateListeners(html: any): void
  • After rendering, activate event listeners which provide interactivity for the Application. This is where user-defined Application subclasses should attach their event-handling logic.

    Parameters

    • html: any

    Returns void

  • processMessage(message: string): Promise<any>
  • Prepare the data object of chat message data depending on the type of message being posted

    Parameters

    • message: string

      The original string of the message content

    Returns Promise<any>

    The prepared chat data object, or void if we were executing a macro instead

  • _contextMenu(html: any): void
  • inheritdoc

    Parameters

    • html: any

    Returns void

  • activate(): void
  • Activate this SidebarTab, switching focus to it

    Returns void

  • close(options: any): Promise<void>
  • override

    Parameters

    • options: any

    Returns Promise<void>

  • Create a second instance of this SidebarTab class which represents a singleton popped-out container

    Returns SidebarTab

    The popped out sidebar tab instance

  • renderPopout(): void
  • _onLazyLoadImage(entries: HTMLElement[], observer: IntersectionObserver): void
  • Handle lazy loading for sidebar images to only load them once they become observed

    Parameters

    • entries: HTMLElement[]

      The entries which are now observed

    • observer: IntersectionObserver

      The intersection observer instance

    Returns void

  • render(force?: boolean, options?: { left: number; top: number; width: number; height: number; scale: number; focus: boolean; renderContext: string; renderData: any }): Application
  • Render the Application by evaluating it's HTML template against the object of data provided by the getData method If the Application is rendered as a pop-out window, wrap the contained HTML in an outer frame with window controls

    Parameters

    • force: boolean = false

      Add the rendered application to the DOM if it is not already present. If false, the Application will only be re-rendered if it is already present.

    • options: { left: number; top: number; width: number; height: number; scale: number; focus: boolean; renderContext: string; renderData: any } = {}

      Additional rendering options which are applied to customize the way that the Application is rendered in the DOM.

      • left: number
      • top: number
      • width: number
      • height: number
      • scale: number
      • focus: boolean
      • renderContext: string
      • renderData: any

    Returns Application

    The rendered Application instance

  • activateTab(tabName: string, options?: { group: string; triggerCallback: boolean }): void
  • Change the currently active tab

    Parameters

    • tabName: string

      The target tab name to switch to

    • options: { group: string; triggerCallback: boolean } = {}

      Options which configure changing the tab

      • group: string

        A specific named tab group, useful if multiple sets of tabs are present

      • triggerCallback: boolean

        Whether to trigger tab-change callback functions

    Returns void

  • bringToTop(): void
  • Bring the application to the top of the rendering stack

    Returns void

  • minimize(): Promise<void>
  • Minimize the pop-out window, collapsing it to a small tab Take no action for applications which are not of the pop-out variety or apps which are already minimized

    Returns Promise<void>

    A Promise which resolves once the minimization action has completed

  • maximize(): Promise<void>
  • Maximize the pop-out window, expanding it to its original size Take no action for applications which are not of the pop-out variety or are already maximized

    Returns Promise<void>

    A Promise which resolves once the maximization action has completed

  • setPosition(position?: { left: number; top: number; width: number; height: string | number; scale: number }): void | { left: number; top: number; width: number; height: number; scale: number }
  • Set the application position and store its new location. Returns the updated position object for the application containing the new values.

    Parameters

    • position: { left: number; top: number; width: number; height: string | number; scale: number } = {}

      Positional data

      • left: number

        The left offset position in pixels

      • top: number

        The top offset position in pixels

      • width: number

        The application width in pixels

      • height: string | number

        The application height in pixels

      • scale: number

        The application scale as a numeric factor where 1.0 is default

    Returns void | { left: number; top: number; width: number; height: number; scale: number }

    |void}

  • _saveScrollPositions(html: jQuery): void
  • Persist the scroll positions of containers within the app before re-rendering the content

    Parameters

    • html: jQuery

      The HTML object being traversed

    Returns void

  • _restoreScrollPositions(html: jQuery): void
  • Restore the scroll positions of containers within the app after re-rendering the content

    Parameters

    • html: jQuery

      The HTML object being traversed

    Returns void

  • _renderOuter(): Promise<jQuery>
  • Render the outer application wrapper

    Returns Promise<jQuery>

    A promise resolving to the constructed jQuery object

  • _activateCoreListeners(html: jQuery): void
  • Activate required listeners which must be enabled on every Application. These are internal interactions which should not be overridden by downstream subclasses.

    Parameters

    • html: jQuery

    Returns void

  • _onChangeTab(event: MouseEvent, tabs: Tabs, active: string): void
  • Handle changes to the active tab in a configured Tabs controller

    Parameters

    • event: MouseEvent

      A left click event

    • tabs: Tabs

      The Tabs controller

    • active: string

      The new active tab name

    Returns void

  • _onSearchFilter(event: KeyboardEvent, query: string, rgx: RegExp, html: HTMLElement): void
  • Handle changes to search filtering controllers which are bound to the Application

    Parameters

    • event: KeyboardEvent

      The key-up event from keyboard input

    • query: string

      The raw string input to the search field

    • rgx: RegExp

      The regular expression to test against

    • html: HTMLElement

      The HTML element which should be filtered

    Returns void

  • _canDragStart(selector: string): boolean
  • Define whether a user is able to begin a dragstart workflow for a given drag selector

    Parameters

    • selector: string

      The candidate HTML selector for dragging

    Returns boolean

    Can the current user drag this selector?

  • _canDragDrop(selector: string): boolean
  • Define whether a user is able to conclude a drag-and-drop workflow for a given drop selector

    Parameters

    • selector: string

      The candidate HTML selector for the drop target

    Returns boolean

    Can the current user drop on this selector?

  • _onDragStart(event: DragEvent): void
  • Callback actions which occur at the beginning of a drag start workflow.

    Parameters

    • event: DragEvent

      The originating DragEvent

    Returns void

  • _onDragOver(event: DragEvent): void
  • Callback actions which occur when a dragged element is over a drop target.

    Parameters

    • event: DragEvent

      The originating DragEvent

    Returns void

  • _onDrop(event: DragEvent): void
  • Callback actions which occur when a dragged element is dropped on a target.

    Parameters

    • event: DragEvent

      The originating DragEvent

    Returns void

  • _renderBatch(html: jQuery, size: number): Promise<void>
  • Render a batch of additional messages, prepending them to the top of the log

    Parameters

    • html: jQuery

      The rendered jQuery HTML object

    • size: number

      The batch size to include

    Returns Promise<void>

  • scrollBottom(options?: { popout: boolean }): void
  • Scroll the chat log to the bottom

    Parameters

    • options: { popout: boolean } = {}
      • popout: boolean

        If a popout exists, scroll it too

    Returns void

  • #waitForImages(): Promise<void>
  • Wait for any newly-added images to load.

    Returns Promise<void>

    A Promise that resolves when all images in the chat log have loaded.

  • _processDiceCommand(command: string, matches: RegExpMatchArray[], chatData: any, createOptions: any): Promise<void>
  • Process messages which are posted using a dice-roll command

    Parameters

    • command: string

      The chat command type

    • matches: RegExpMatchArray[]

      Multi-line matched roll expressions

    • chatData: any

      The initial chat data

    • createOptions: any

      Options used to create the message

    Returns Promise<void>

  • _processWhisperCommand(command: string, match: RegExpMatchArray, chatData: any, createOptions: any): void
  • Process messages which are posted using a chat whisper command

    Parameters

    • command: string

      The chat command type

    • match: RegExpMatchArray

      The matched RegExp expressions

    • chatData: any

      The initial chat data

    • createOptions: any

      Options used to create the message

    Returns void

  • _processChatCommand(command: string, match: RegExpMatchArray, chatData: any, createOptions: any): void
  • Process messages which are posted using a chat whisper command

    Parameters

    • command: string

      The chat command type

    • match: RegExpMatchArray

      The matched RegExp expressions

    • chatData: any

      The initial chat data

    • createOptions: any

      Options used to create the message

    Returns void

  • _processMacroCommand(command: string, match: RegExpMatchArray): void
  • Process messages which execute a macro.

    Parameters

    • command: string

      The chat command typed.

    • match: RegExpMatchArray

      The RegExp matches.

    Returns void

  • _remember(message: string): void
  • Add a sent message to an array of remembered messages to be re-sent if the user pages up with the up arrow key

    Parameters

    • message: string

      The message text being remembered

    Returns void

  • _recall(direction: number): string
  • Recall a previously sent message by incrementing up (1) or down (-1) through the sent messages array

    Parameters

    • direction: number

      The direction to recall, positive for older, negative for more recent

    Returns string

    The recalled message, or an empty string

  • _getEntryContextOptions(): any[]
  • Get the ChatLog entry context options

    Returns any[]

    The ChatLog entry context options

  • _onChatKeyDown(event: KeyboardEvent): Promise<void>
  • Handle keydown events in the chat entry textarea

    Parameters

    • event: KeyboardEvent

    Returns Promise<void>

  • _onChangeRollMode(event: Event): void
  • Handle setting the preferred roll mode

    Parameters

    • event: Event

    Returns void

  • _onDeleteMessage(event: Event): any
  • Handle single message deletion workflow

    Parameters

    • event: Event

    Returns any

  • _onDiceRollClick(event: Event): void
  • Handle clicking of dice tooltip buttons

    Parameters

    • event: Event

    Returns void

  • _onExportLog(event: Event): void
  • Handle click events to export the chat log

    Parameters

    • event: Event

    Returns void

  • _onFlushLog(event: Event): void
  • Handle click events to flush the chat log

    Parameters

    • event: Event

    Returns void

  • _onScrollLog(event: UIEvent): Promise<void>
  • Handle scroll events within the chat log container

    Parameters

    • event: UIEvent

      The initial scroll event

    Returns Promise<void>

  • parse(message: string): string[]
  • Parse a chat string to identify the chat command (if any) which was used

    Parameters

    • message: string

      The message to match

    Returns string[]

    The identified command and regex match

  • _setRollMode(mode: string): void
  • Update roll mode select dropdowns when the setting is changed

    Parameters

    • mode: string

      The new roll mode setting

    Returns void

  • _onDropTextAreaData(event: DragEvent): Promise<void>
  • Handle dropping of transferred data onto the chat editor

    Parameters

    • event: DragEvent

      The originating drop event which triggered the data transfer

    Returns Promise<void>

Properties

tabName: string

The base name of this sidebar tab

_original: SidebarTab

Denote whether this is the original version of the sidebar tab, or a pop-out variant

options: any

The options provided to this application upon initialization

appId: number

The application ID is a unique incrementing integer which is used to identify every application window drawn by the VTT

_element: jQuery

An internal reference to the HTML element this application renders

position: any

Track the current position and dimensions of the Application UI

_dragDrop: DragDrop[]

DragDrop workflow handlers which are active for this Application

_tabs: Tabs[]

Tab navigation handlers which are active for this Application

_searchFilters: SearchFilter[]

SearchFilter handlers which are active for this Application

_minimized: boolean

Track whether the Application is currently minimized

_scrollPositions: any

Track the most recent scroll positions for any vertically scrolling containers

_popout: SidebarTab

A reference to the pop-out variant of this SidebarTab, if one exists

_state: number

The current render state of the Application

see

{Application.RENDER_STATES}

_priorState: number

The prior render state of this Application. This allows for rendering logic to understand if the application is being rendered for the first time.

see

{Application.RENDER_STATES}

MESSAGE_PATTERNS: { roll: RegExp; gmroll: RegExp; blindroll: RegExp; selfroll: RegExp; publicroll: RegExp; ic: RegExp; ooc: RegExp; emote: RegExp; whisper: RegExp; reply: RegExp; gm: RegExp; players: RegExp; macro: RegExp; invalid: RegExp } = ...

An enumeration of regular expression patterns used to match chat messages.

Type declaration

  • roll: RegExp
  • gmroll: RegExp
  • blindroll: RegExp
  • selfroll: RegExp
  • publicroll: RegExp
  • ic: RegExp
  • ooc: RegExp
  • emote: RegExp
  • whisper: RegExp
  • reply: RegExp
  • gm: RegExp
  • players: RegExp
  • macro: RegExp
  • invalid: RegExp
MULTILINE_COMMANDS: Set<string> = ...

The set of commands that can be processed over multiple lines.

_pendingText: any
RENDER_STATES: Readonly<{ CLOSING: -2; CLOSED: -1; NONE: 0; RENDERING: 1; RENDERED: 2; ERROR: 3 }> = ...

The sequence of rendering states that track the Application life-cycle.