Options
All
  • Public
  • Public/Protected
  • All
Menu

A class responsible for configuring custom fonts for the world.

Hierarchy

Index

Constructors

Methods

  • getData(options?: {}): { fonts: any[]; selected: any; font: any; family: string; weights: { value: number; label: string }[] }
  • 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 { fonts: any[]; selected: any; font: any; family: string; weights: { value: number; label: string }[] }

      • fonts: any[]
      • selected: any
      • font: any
      • family: string
      • weights: { value: number; label: string }[]
    • 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

    • _updateObject(event: any, formData: any): Promise<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<void>

      A Promise which resolves once the update operation has completed

    • close(options?: {}): Promise<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: {} = {}

        Returns Promise<void>

        A Promise which resolves once the application is closed

      • _onChangeInput(event: any): Promise<any>
      • 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: any

          The initial change event

        Returns Promise<any>

      • _render(force: any, options: any): Promise<void>
      • An asynchronous inner function which handles the rendering of the Application

        Parameters

        • force: any

          Render and display the application even if it is not currently displayed.

        • options: any

          Additional options which update the current values of the Application#options object

        Returns Promise<void>

        A Promise that resolves to the Application once rendering is complete

      • _renderInner(...args: any[]): Promise<jQuery>
      • Render the inner application content

        Parameters

        • Rest ...args: any[]

          The data used to render the inner template

        Returns Promise<jQuery>

        A promise resolving to the constructed jQuery object

      • _activateCoreListeners(html: any): 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: any

        Returns void

      • activateEditor(name: string, options?: any, initialContent?: string): Promise<any>
      • Activate a named TinyMCE text editor

        Parameters

        • name: string

          The named data field which the editor modifies.

        • options: any = {}

          Editor initialization options passed to TextEditor.create.

        • initialContent: string = ""

          Initial text content for the editor area.

        Returns Promise<any>

      • saveEditor(name: string, [remove]?: boolean): Promise<void>
      • Handle saving the content of a specific editor by name

        Parameters

        • name: string

          The named editor to save

        • [remove]: boolean = {}

          Remove the editor after saving its content

        Returns Promise<void>

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

        Parameters

        • options: any = {}

        Returns FormApplication

        Return a self-reference for convenient method chaining

      • 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
      • 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}

      • Template data for a given font definition.

        Parameters

        Returns any[]

      • _onClickControl(event: MouseEvent): void | Promise<void>
      • Handle application controls.

        Parameters

        • event: MouseEvent

          The click event.

        Returns void | Promise<void>

      • _updateFontFields(): void
      • Update available font fields based on the font type selected.

        Returns void

      • _onAddFont(): Promise<void>
      • Add a new custom font definition.

        Returns Promise<void>

      • _onDeleteFont(event: MouseEvent): Promise<void>
      • Delete a font.

        Parameters

        • event: MouseEvent

          The click event.

        Returns Promise<void>

      • _onSelectFont(event: MouseEvent): void
      • Select a font to preview.

        Parameters

        • event: MouseEvent

          The click event.

        Returns void

      • _disableFields(form: HTMLElement): void
      • If the form is not editable, disable its input fields

        Parameters

        • form: HTMLElement

          The form HTML

        Returns void

      • _onSubmit(event: Event, __namedParameters?: any): Promise<any>
      • Handle standard form submission steps

        Parameters

        • event: Event

          The submit event which triggered this handler

        • __namedParameters: any = {}

        Returns Promise<any>

        A promise which resolves to the validated update data

      • _getSubmitData(updateData?: any): any
      • Get an object of update data used to update the form's target object

        Parameters

        • updateData: any = {}

          Additional data that should be merged with the form data

        Returns any

        The prepared update data

      • _onChangeColorPicker(event: Event): void
      • 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

      • _onChangeRange(event: Event): void
      • 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

      • _onSelectFile(selection: string, filePicker: FilePicker): void
      • Additional handling which should trigger when a FilePicker contained within this FormApplication is submitted.

        Parameters

        • selection: string

          The target path which was selected

        • filePicker: FilePicker

          The FilePicker instance which was submitted

        Returns void

      • _activateEditor(div: HTMLElement): void
      • Activate an editor instance present within the form

        Parameters

        • div: HTMLElement

          The element which contains the editor

        Returns void

      • _configureProseMirrorPlugins(name: string, [options]?: { remove: boolean }): any
      • Configure ProseMirror plugins for this sheet.

        Parameters

        • name: string

          The name of the editor.

        • [options]: { remove: boolean } = {}

          Additional options to configure the plugins.

          • remove: boolean

        Returns any

      • _activateFilePicker(event: PointerEvent): Promise<any>
      • Activate a FilePicker instance present within the form

        Parameters

        • event: PointerEvent

          The mouse click event on a file picker activation button

        Returns Promise<any>

      • _getFilePickerOptions(event: PointerEvent): any
      • Determine the configuration options used to initialize a FilePicker instance within this FormApplication. Subclasses can extend this method to customize the behavior of pickers within their form.

        Parameters

        • event: PointerEvent

          The initiating mouse click event which opens the picker

        Returns any

        Options passed to the FilePicker constructor

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

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

      • #isSelected(selection: { family: string; index: number }): boolean
      • Whether the given font is currently selected.

        Parameters

        • selection: { family: string; index: number }

          The font selection information.

          • family: string
          • index: number

        Returns boolean

      • getAvailableFonts(): string[]
      • Get the list of fonts that successfully loaded.

        Returns string[]

      • getAvailableFontChoices(): any
      • Get the list of fonts formatted for display with selectOptions.

        Returns any

      • Load a font definition.

        Parameters

        • family: string

          The font family name (case-sensitive).

        • definition: FontFamilyDefinition

          The font family definition.

        Returns Promise<boolean>

        Returns true if the font was successfully loaded.

      • _loadFonts(ms?: number): Promise<void>
      • Ensure that fonts have loaded and are ready for use. Enforce a maximum timeout in milliseconds. Proceed after that point even if fonts are not yet available.

        internal

        Parameters

        • ms: number = 4500

        Returns Promise<void>

      • _collectDefinitions(): any[]
      • Collect all the font definitions and combine them.

        Returns any[]

      • _createFontFace(family: string, font: FontFaceDescriptors): FontFace
      • Create FontFace object from a FontDefinition.

        Parameters

        • family: string

          The font family name.

        • font: FontFaceDescriptors

          The font definition.

        Returns FontFace

      • _formatFont(family: string, definition: FontFaceDescriptors): string
      • Format a font definition for display.

        Parameters

        • family: string

          The font family.

        • definition: FontFaceDescriptors

          The font definition.

        Returns string

        The formatted definition.

      Properties

      object: any

      The object target which we are using this form to modify

      form: HTMLElement

      A convenience reference to the form HTMLElement

      filepickers: FilePicker[]

      Keep track of any FilePicker instances which are associated with this form The values of this Array are inner-objects with references to the FilePicker instances and other metadata

      editors: 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

      _submitting: boolean
      _state: any

      The current render state of the Application

      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

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

      #fontsModified: boolean = false

      Whether fonts have been modified since opening the application.

      #selected: { family: string; index: number } = null

      The currently selected font.

      Type declaration

      • family: string
      • index: number
      FONT_TYPES: { FILE: string; SYSTEM: string } = ...

      Whether a font is distributed to connected clients or found on their OS.

      Type declaration

      • FILE: string
      • SYSTEM: string
      SETTING: string = "fonts"

      Define the setting key where this world's font information will be stored.

      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.

      #available: Set<string> = ...

      A list of fonts that were correctly loaded and are available for use.

      Accessors

      • get isEditable(): boolean
      • Is the Form Application currently editable?

        Returns boolean

      • get id(): string
      • Return the CSS application ID which uniquely references this UI element

        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

      • get defaultOptions(): any
      • inheritdoc

        Returns any