Foundry Virtual Tabletop - API Documentation - Version 14
    Preparing search index...

    The Application responsible for displaying and editing a single JournalEntry document.

    since v13

    The JournalEntry instance which is being edited

    Application options

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    _dragDrop: DragDrop[]

    DragDrop workflow handlers which are active for this Application

    _element: jQuery

    An internal reference to the HTML element this application renders

    _minimized: boolean | null

    Track whether the Application is currently minimized

    _scrollPositions: object | null

    Track the most recent scroll positions for any vertically scrolling containers

    _searchFilters: SearchFilter[]

    SearchFilter handlers which are active for this Application

    _tabs: Tabs[]

    Tab navigation handlers which are active for this Application

    appId: number

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

    editors: Record<string, object>

    Keep track of any mce editors which may be active as part of this form The values of this object are inner-objects with references to the MCE editor and other metadata

    form: HTMLElement

    A convenience reference to the form HTMLElement

    object: any

    The object target which we are using this form to modify

    options: object

    The options provided to this application upon initialization

    position: object

    Track the current position and dimensions of the Application UI

    _pages: object[]

    The cached list of processed page entries. This array is populated in the getData method.

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

    _secrets: HTMLSecret[]

    The list of handlers for secret block functionality.

    _state: number

    The current render state of the Application

    INTERSECTION_RATIO: number = .25

    The minimum amount of content that must be visible before the next page is marked as in view. Cannot be less than 25% without also modifying the IntersectionObserver threshold.

    OWNERSHIP_ICONS: { "0": string; "2": string; "3": string } = ...

    Icons for page ownership.

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

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

    VIEW_MODES: { MULTIPLE: number; SINGLE: number } = ...

    Available view modes for journal entries.

    Accessors

    • get document(): ClientDocument

      A semantic convenience reference to the Document instance which is the target object for this form.

      Returns ClientDocument

    • get element(): jQuery

      Return the active application element, if it currently exists in the DOM

      Returns jQuery

    • get id(): string

      Return the CSS application ID which uniquely references this UI element

      Returns string

    • get isEditable(): any

      Is the Form Application currently editable?

      Returns any

    • get observer(): IntersectionObserver

      The currently active IntersectionObserver.

      Returns IntersectionObserver

    • get pageIndex(): number

      The index of the currently viewed page.

      Returns number

    • get pagesInView(): HTMLElement[]

      The pages that are currently scrolled into view and marked as 'active' in the sidebar.

      Returns HTMLElement[]

    • 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 searchMode(): string

      The current search mode for this journal

      Returns string

    • get sidebarCollapsed(): boolean

      Is the table-of-contents sidebar currently collapsed?

      Returns boolean

    • 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 title(): string

      An Application window should define its own title definition logic which may be dynamic depending on its data

      Returns string

    • get _customElements(): string[]
      Protected

      An array of custom element tag names that should be listened to for changes.

      Returns string[]

    Methods

    • Activate required listeners which must be enabled on every Application. These are internal interactions which should not be overridden by downstream subclasses.

      Parameters

      • html: any

      Returns void

    • Define whether a user is able to conclude a drag-and-drop workflow for a given drop selector

      Parameters

      • selector: any

        The candidate HTML selector for the drop target

      Returns any

      Can the current user drop on this selector?

    • Define whether a user is able to begin a dragstart workflow for a given drag selector

      Parameters

      • selector: any

        The candidate HTML selector for dragging

      Returns any

      Can the current user drag this selector?

    • Specify the set of config buttons which should appear in the Application header. Buttons should be returned as an Array of objects. The header buttons which are added to the application can be modified by the getApplicationV1HeaderButtons hook.

      Returns ApplicationV1HeaderButton[]

      getApplicationHeaderButtons

    • Internal

      Customize how a new HTML Application is added and first appears in the DOM

      Parameters

      • html: jQuery

        The HTML element which is ready to be added to the DOM

      Returns void

    • Callback actions which occur at the beginning of a drag start workflow.

      Parameters

      • event: any

        The originating DragEvent

      Returns void

    • Callback actions which occur when a dragged element is dropped on a target.

      Parameters

      • event: any

        The originating DragEvent

      Returns Promise<any>

    • Internal

      Additional actions to take when the application window is resized

      Parameters

      • event: Event

      Returns void

    • Handle changes to search filtering controllers which are bound to the Application

      Parameters

      • event: any

        The key-up event from keyboard input

      • query: any

        The raw string input to the search field

      • rgx: any

        The regular expression to test against

      • html: any

        The HTML element which should be filtered

      Returns void

    • Handle requests to show the referenced Journal Entry to other Users Save the form before triggering the show request, in case content has changed

      Parameters

      • event: Event

        The triggering click event

      Returns Promise<void>

    • Internal

      Handle application minimization behavior - collapsing content and reducing the size of the header

      Parameters

      • ev: Event

      Returns void

    • Parameters

      • Optionalforce: boolean
      • Optionaloptions: {
            anchor?: string;
            collapsed?: boolean;
            mode?: number;
            pageId?: string;
            pageIndex?: number;
            tempOwnership?: boolean;
        } = {}
        • Optionalanchor?: string

          Render the sheet with the given anchor for the given page in view.

        • Optionalcollapsed?: boolean

          Render the sheet with the TOC sidebar collapsed?

        • Optionalmode?: number

          Render the sheet in a given view mode, see JournalSheet.VIEW_MODES.

        • OptionalpageId?: string

          Render the sheet with the page with the given ID in view.

        • OptionalpageIndex?: number

          Render the sheet with the page at the given index in view.

        • OptionaltempOwnership?: boolean

          Whether the journal entry or one of its pages is being shown to players who might otherwise not have permission to view it.

      Returns Promise<void>

    • Internal

      Render the inner application content

      Parameters

      • ...args: any[]

        The data used to render the inner template

      Returns Promise<jQuery>

      A promise resolving to the constructed jQuery object

    • Render the outer application wrapper

      Returns Promise<jQuery>

      A promise resolving to the constructed jQuery object

    • Internal

      Customize how inner HTML is replaced when the application is refreshed

      Parameters

      • element: jQuery

        The original HTML processed as a jQuery object

      • html: jQuery

        New updated HTML as a jQuery object

      Returns void

    • This method is called upon form submission after form data is validated

      Parameters

      • event: any

        The initial triggering submission event

      • formData: any

        The object of validated form data with which to update the object

      Returns Promise<any>

      A Promise which resolves once the update operation has completed

    • Activate a named text editor

      Parameters

      • name: any

        The named data field which the editor modifies.

      • options: {} = {}

        Editor initialization options passed to foundry.applications.ux.TextEditor.create.

      • initialContent: string = ""

        Initial text content for the editor area.

      Returns Promise<EditorView>

    • 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

    • 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

    • Bring the application to the top of the rendering stack

      Returns void

    • Close the application and un-register references to it within UI mappings This function returns a Promise which resolves once the window closing animation concludes

      Parameters

      • options: {} = {}

        Options which affect how the Application is closed

      Returns Promise<void>

      A Promise which resolves once the application is closed

      closeApplication

    • Prompt the user with a Dialog for creation of a new JournalEntryPage

      Returns any

    • An application should define the data object used to render its template. This function may either return an Object directly, or a Promise which resolves to an Object If undefined, the default implementation will return an empty object allowing only for rendering of static HTML

      Parameters

      • options: {} = {}

      Returns {
          cssClass: string;
          data: any;
          document: ClientDocument;
          editable: any;
          limited: any;
          options: object;
          owner: any;
          title: string;
      }

    • Retrieve the sheet instance for rendering this page inline.

      Parameters

      • pageId: string

        The ID of the page.

      Returns JournalPageSheet

    • Turn to a specific page.

      Parameters

      • pageId: string

        The ID of the page to turn to.

      • Optionalanchor: string

        Optionally an anchor slug to focus within that page.

      Returns Application | undefined

    • 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

    • 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

    • Render the Application by evaluating its 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: {
            focus?: boolean;
            height?: number;
            left?: number;
            renderContext?: string;
            renderData?: object;
            scale?: number;
            top?: number;
            width?: number;
        } = {}

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

        • Optionalfocus?: boolean

          Apply focus to the application, maximizing it and bringing it to the top of the vertical stack.

        • Optionalheight?: number

          The rendered height

        • Optionalleft?: number

          The left positioning attribute

        • OptionalrenderContext?: string

          A context-providing string which suggests what event triggered the render

        • OptionalrenderData?: object

          The data change which motivated the render request

        • Optionalscale?: number

          The rendered transformation scale

        • Optionaltop?: number

          The top positioning attribute

        • Optionalwidth?: number

          The rendered width

      Returns Application

      The rendered Application instance

    • Handle saving the content of a specific editor by name

      Parameters

      • name: string

        The named editor to save

      • Optionaloptions: { preventRender?: boolean; remove?: boolean } = {}
        • OptionalpreventRender?: boolean

          Prevent normal re-rendering of the sheet after saving.

        • Optionalremove?: boolean

          Remove the editor after saving its content

      Returns Promise<void>

    • Set the application position and store its new location. Returns the updated position object for the application containing the new values.

      Parameters

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

        Positional data

        • height: string | number | null

          The application height in pixels

        • left: number | null

          The left offset position in pixels

        • scale: number | null

          The application scale as a numeric factor where 1.0 is default

        • top: number | null

          The top offset position in pixels

        • width: number | null

          The application width in pixels

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

    • Submit the contents of a Form Application, processing its content as defined by the Application

      Parameters

      • Optionaloptions: object = {}

        Options passed to the _onSubmit event handler

      Returns Promise<JournalSheet>

      Return a self-reference for convenient method chaining

    • Toggle the search mode for this journal between "name" and "full" text search

      Returns void

    • Toggle the collapsed or expanded state of the Journal Entry table-of-contents sidebar.

      Returns void

    • Protected

      Activate an editor instance present within the form

      Parameters

      • div: HTMLElement

        The element which contains the editor

      Returns void

    • Protected

      Activate listeners after page content has been injected.

      Returns void

    • Protected

      Highlights the currently viewed page in the sidebar.

      Returns void

    • Protected

      Call all hooks for all applications in the inheritance chain.

      Parameters

      • hookName: string | ((className: string) => string)

        The hook being triggered, which formatted with the Application class name

      • ...hookArgs: any[]

        The arguments passed to the hook calls

      Returns void

    • Protected

      Test whether a certain User has permission to view this Document Sheet.

      Parameters

      • user: User

        The user requesting to render the sheet

      Returns boolean

      Does the User have permission to view this sheet?

    • Protected

      Configure ProseMirror plugins for this sheet.

      Parameters

      • name: string

        The name of the editor.

      • Optionaloptions: { remove?: boolean } = {}

        Additional options to configure the plugins.

        • Optionalremove?: boolean

          Whether the editor should destroy itself on save.

      Returns object

    • Protected

      Create an ID link button in the document sheet header which displays the document ID and copies to clipboard

      Parameters

      • html: jQuery

      Returns void

    • Protected

      If the form is not editable, disable its input fields

      Parameters

      • form: HTMLElement

        The form HTML

      Returns void

    • Protected

      Identify which page of the journal sheet should be currently rendered. This can be controlled by options passed into the render method or by a subclass override.

      Parameters

      • options: { pageId?: string; pageIndex?: number } = {}

        Sheet rendering options

        • OptionalpageId?: string

          The ID of a page to render

        • OptionalpageIndex?: number

          A numbered index of page to render

      Returns number

      The currently displayed page index

    • Protected

      Get the set of ContextMenu options which should be used for JournalEntryPages in the sidebar.

      Returns ContextMenuEntry[]

      The Array of context options passed to the ContextMenu instance.

    • Protected

      Get the HTML content that a given secret block is embedded in.

      Parameters

      • secret: HTMLElement

        The secret block.

      Returns string | void

    • Protected

      Get an object of update data used to update the form's target object

      Parameters

      • updateData: object = {}

        Additional data that should be merged with the form data

      Returns object

      The prepared update data

    • Protected

      Create an intersection observer to maintain a list of headings that are in view. This is much more performant than calling getBoundingClientRect on all headings whenever we want to determine this list.

      Returns void

    • Protected

      Create an intersection observer to maintain a list of pages that are in view.

      Returns void

    • Protected

      Handle clicking the previous and next page buttons.

      Parameters

      • event: TriggeredEvent

        The button click event.

      Returns any

    • Protected

      Handle the change of a color picker input which enters it's chosen value into a related input field

      Parameters

      • event: Event

        The color picker change event

      Returns void

    • Protected

      Handle changes to an input element, submitting the form if options.submitOnChange is true. Do not preventDefault in this handler as other interactions on the form may also be occurring.

      Parameters

      • event: Event

        The initial change event

      Returns Promise<any>

    • Protected

      Handle changes to a range type input by propagating those changes to the sibling range-value element

      Parameters

      • event: Event

        The initial change event

      Returns void

    • Protected

      Handle changes to the active tab in a configured Tabs controller

      Parameters

      • event: MouseEvent | null

        A left click event

      • tabs: Tabs

        The Tabs controller

      • active: string

        The new active tab name

      Returns void

    • Protected

      Handle clicking an image to pop it out for fullscreen view.

      Parameters

      • event: MouseEvent

        The click event.

      Returns void

    • Protected

      Handle clicking an entry in the sidebar to scroll that heading into view.

      Parameters

      • event: TriggeredEvent

        The originating click event.

      Returns void

    • Protected

      Handle requests to configure the default sheet used by this Document

      Parameters

      • event: ClickEvent

      Returns void

    • Protected

      Handle closing the context menu.

      Parameters

      • target: HTMLElement

        The element the context menu has been triggered for.

      Returns void

    • Protected

      Handle opening the context menu.

      Parameters

      • target: HTMLElement

        The element the context menu has been triggered for.

      Returns void

    • Protected

      Callback actions which occur when a dragged element is over a drop target.

      Parameters

      • event: DragEvent

        The originating DragEvent

      Returns void

    • Protected

      Edit one of this JournalEntry's JournalEntryPages.

      Parameters

      • event: TriggeredEvent

        The originating page edit event.

      Returns any

    • Protected

      Handle new pages scrolling into view.

      Parameters

      • entries: IntersectionObserverEntry[]

        An Array of elements that have scrolled into or out of view.

      • observer: IntersectionObserver

        The IntersectionObserver that invoked this callback.

      Returns void

    • Protected

      Handle standard form submission steps

      Parameters

      • event: Event

        The submit event which triggered this handler

      • options: { preventClose?: boolean; preventRender?: boolean; updateData?: object | null } = {}
        • OptionalpreventClose?: boolean

          Override the standard behavior of whether to close the form on submit

        • OptionalpreventRender?: boolean

          Prevent the application from re-rendering as a result of form submission

        • OptionalupdateData?: object | null

          Additional specific data keys/values which override or extend the contents of the parsed form. This can be used to update other flags or data fields at the same time as processing a form submission to avoid multiple database operations.

      Returns Promise<any>

      A promise which resolves to the validated update data

    • Protected

      Render the page view for an app v1 page sheet.

      Parameters

      • element: HTMLElement

        The existing page element in the journal entry view.

      • sheet: JournalPageSheet

        The page sheet.

      Returns Promise<void>

    • Protected

      Add headings to the table of contents for the given page node.

      Parameters

      • pageNode: HTMLElement

        The HTML node of the page's rendered contents.

      • toc: Record<string, JournalEntryPageHeading>

        The page's table of contents.

      Returns Promise<void>

    • Protected

      Render the page view for a page sheet.

      Parameters

      • element: HTMLElement

        The existing page element in the journal entry view.

      • sheet: JournalEntryPageSheet

        The page sheet.

      Returns Promise<void>

    • Protected

      Update child views inside the main sheet.

      Returns Promise<void>

    • Protected

      Restore the scroll positions of containers within the app after re-rendering the content

      Parameters

      • html: jQuery

        The HTML object being traversed

      Returns void

    • Protected

      Persist the scroll positions of containers within the app before re-rendering the content

      Parameters

      • html: jQuery

        The HTML object being traversed

      Returns void

    • Protected

      If the set of active pages has changed, various elements in the sidebar will expand and collapse. For particularly long ToCs, this can leave the scroll position of the sidebar in a seemingly random state. We try to do our best to sync the sidebar scroll position with the current journal viewport.

      Returns void

    • Protected

      Update the disabled state of the previous and next page buttons.

      Returns void

    • Protected

      Update the HTML content that a given secret block is embedded in.

      Parameters

      • secret: HTMLElement

        The secret block.

      • content: string

        The new content.

      Returns void | Promise<any>

      The updated Document.

    • Protected

      Wait for any images present in the Application to load.

      Returns Promise<void>

      A Promise that resolves when all images have loaded.

    • Internal

      Return the inheritance chain for this Application class up to (and including) it's base Application class.

      Returns Function[]