Pathfinder 1e for Foundry VTT
    Preparing search index...

    Override and extend the core ItemSheet implementation to handle game system specific item types

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    _activeEdits: Record<string, string> = {}
    _warnedAppV1: boolean = true
    ACTIONS: {
        addCardNote: Object;
        browse: Object;
        createAction: Object;
        createChange: Object;
        createContextNote: Object;
        createLinkedAttack: Object;
        createScriptCall: Object;
        createSpellbook: Object;
        deleteAction: Object;
        deleteCardNote: (
            ...this: any,
            event: PointerEvent,
            target: HTMLElement,
        ) => Promise<void>;
        deleteChange: Object;
        deleteContextNote: Object;
        deleteLink: Object;
        deleteScriptCall: Object;
        dupeAction: Object;
        dupeChange: (
            ...this: any,
            event: PointerEvent,
            target: HTMLElement,
        ) => void;
        editAction: Object;
        editChange: (
            ...this: any,
            event: PointerEvent,
            target: HTMLElement,
        ) => void;
        editEntries: Object;
        editFlags: Object;
        editInstructions: Object;
        editMaterial: Object;
        editResistances: Object;
        editScriptCall: Object;
        editSources: Object;
        editSpeeds: Object;
        editTraits: Object;
        help: Object;
        hideScriptCall: Object;
        openDocument: Object;
        protectedInput: Object;
        selectContextNoteTarget: Object;
        selectItem: Object;
        toggleActionSummary: Object;
    } = ...

    Temporary action mapping until AppV2 conversion.

    Type Declaration

    • addCardNote: Object
    • browse: Object
    • createAction: Object
    • createChange: Object
    • createContextNote: Object
    • createLinkedAttack: Object
    • createScriptCall: Object
    • createSpellbook: Object
    • deleteAction: Object
    • deleteCardNote: (...this: any, event: PointerEvent, target: HTMLElement) => Promise<void>
    • deleteChange: Object
    • deleteContextNote: Object
    • deleteLink: Object
    • deleteScriptCall: Object
    • dupeAction: Object
    • dupeChange: (...this: any, event: PointerEvent, target: HTMLElement) => void
    • editAction: Object
    • editChange: (...this: any, event: PointerEvent, target: HTMLElement) => void
    • editEntries: Object
    • editFlags: Object
    • editInstructions: Object
    • editMaterial: Object
    • editResistances: Object
    • editScriptCall: Object
    • editSources: Object
    • editSpeeds: Object
    • editTraits: Object
    • help: Object
    • hideScriptCall: Object
    • openDocument: Object
    • protectedInput: Object
    • selectContextNoteTarget: Object
    • selectItem: Object
    • toggleActionSummary: Object
    BASE_APPLICATION: typeof ItemSheetPF = ...

    Remove with AppV2 conversion

    EDIT_TRACKING: string[] = ...

    Which fields to track edits for

    WHEEL_UPDATE_SCOPES: string[] = ...

    Accessors

    • get template(): string

      Return a dynamic reference to the HTML template path used to render this Item Sheet

      Returns string

      • Template path
    • get defaultOptions(): InsertKeys<
          {},
          {
              classes: readonly ["pf1", "sheet", "item"];
              dragDrop: readonly [
                  { dragSelector: "li.action-part"; dropSelector: ".tab.details" },
                  { dragSelector: ".tab.changes li.change"; dropSelector: null },
                  {
                      dragSelector: ".tab.links .item-name";
                      dropSelector: ".tab.links .tab[data-group='links']";
                  },
              ];
              scrollY: readonly [".tab", ".buff-flags", ".editor-content"];
              tabs: readonly [
                  {
                      contentSelector: "section.primary-body";
                      group: "primary";
                      initial: "description";
                      navSelector: "nav.tabs[data-group='primary']";
                  },
                  {
                      contentSelector: "section.links-body";
                      group: "links";
                      initial: "children";
                      navSelector: "nav.tabs[data-group='links']";
                  },
                  {
                      contentSelector: ".description-container";
                      group: "description";
                      initial: "identified";
                      navSelector: "nav.tabs[data-group='description']";
                  },
              ];
              width: 800;
          },
      >

      Returns InsertKeys<
          {},
          {
              classes: readonly ["pf1", "sheet", "item"];
              dragDrop: readonly [
                  { dragSelector: "li.action-part"; dropSelector: ".tab.details" },
                  { dragSelector: ".tab.changes li.change"; dropSelector: null },
                  {
                      dragSelector: ".tab.links .item-name";
                      dropSelector: ".tab.links .tab[data-group='links']";
                  },
              ];
              scrollY: readonly [".tab", ".buff-flags", ".editor-content"];
              tabs: readonly [
                  {
                      contentSelector: "section.primary-body";
                      group: "primary";
                      initial: "description";
                      navSelector: "nav.tabs[data-group='primary']";
                  },
                  {
                      contentSelector: "section.links-body";
                      group: "links";
                      initial: "children";
                      navSelector: "nav.tabs[data-group='links']";
                  },
                  {
                      contentSelector: ".description-container";
                      group: "description";
                      initial: "identified";
                      navSelector: "nav.tabs[data-group='description']";
                  },
              ];
              width: 800;
          },
      >

      foundry.utils.mergeObject(super.defaultOptions, {
      template: "templates/sheets/item-sheet.html",
      width: 500,
      closeOnSubmit: false,
      submitOnClose: true,
      submitOnChange: true,
      resizable: true,
      baseApplication: "ItemSheet",
      id: "item",
      secrets: [{parentSelector: ".editor"}]
      })

    Methods

    • Protected

      Allow non-GM to drag&drop actions and items (for containers) to this sheet.

      Returns boolean

    • By default, returns true only for GM

      Parameters

      • selector: any

      Returns boolean

    • Internal

      Submit input value

      Parameters

      • event: Event
      • target: HTMLElement

      Returns Promise<void>

    • Internal

      Get Sidebar Tooltip Content

      Parameters

      • event: PointerEvent
      • target: HTMLElement

      Returns string

    • Nameless Change Event

      Handler for any change event that did not target an element with name.

      Parameters

      • event: Event
      • target: HTMLElement

      Returns boolean

      • True if the change was handled, false otherwise.
    • Protected

      Non-action button clicks

      Parameters

      • event: PointerEvent

        Triggering event

      • target: HTMLElement

        Click target

      Returns boolean

      • True if this click was handled, false otherwise
    • Protected

      Handle action button clicks

      Parameters

      • event: PointerEvent

        Triggering event

      • target: HTMLElement

        Action element

      Returns boolean

      • true if handler was found, false otherwise.
    • Protected

      Non-action context clicks

      Parameters

      • event: PointerEvent

        Triggering event

      • target: HTMLElement

        Click target

      Returns boolean

      • True if this click was handled, false otherwise
    • Protected

      Handle right-click actions

      Parameters

      • event: PointerEvent
      • target: HTMLElement

      Returns boolean

      • True if click was handled, false otherwise.
    • Internal

      Open sidebar tooltip

      Parameters

      • event: PointerEvent
      • target: HTMLElement

      Returns Promise<void>

    • Internal

      Override of drag start event handler

      Parameters

      • event: DragEvent

      Returns void

    • Protected

      Finalize Wheel Update

      Parameters

      • target: HTMLElement

      Returns undefined | object

      • object with wheel element info, undefined if this is not valid element
    • Internal

      Post-Render handling

      Sheet handling that is not needed for rendering

      Parameters

      • html: HTMLElement

      Returns Promise<void>

    • Internal

      Edit input

      Parameters

      • event: PointerEvent
      • target: HTMLElement
      • callback: Function

      Returns void

    • Internal

      Handle dropping content-linkable data to <textarea> or text <input>

      Parameters

      • event: DragEvent
      • dropData: object

      Returns Promise<undefined | Partial<AnyObject>>

    • Protected

      Extend the parent class _updateObject method to ensure that damage ends up in an Array

      Parameters

      • event: any
      • formData: any

      Returns Promise<unknown>

    • Activate listeners for interactive item sheet events

      Parameters

      • jq: JQuery<HTMLElement>

      Returns void

    • Prepare item sheet data Start with the base item data and extending with additional properties for rendering.

      Returns Promise<
          {
              actor: null
              | ActorPF;
              canClassLink: boolean;
              config: ./config.mjs;
              cssClass: string;
              data: any;
              document: ItemPF;
              editable: boolean;
              embedded: boolean;
              inContainer: boolean;
              isGM: boolean;
              item: ItemPF;
              itemType: string;
              labels: Record<string, string>;
              name: string;
              owned: boolean;
              owner: boolean;
              rollData: object;
              system: SystemOfType<"base" | ModuleSubType>;
              tag: any;
          },
      >

    • Internal

      Control effect notes and footnotes

      Parameters

      • ...this: any
      • event: PointerEvent
      • target: HTMLElement

      Returns Promise<void>

    • Duplicate Change

      Parameters

      • ...this: any
      • event: PointerEvent
      • target: HTMLElement

      Returns void

    • Internal

      Edit Change

      Parameters

      • ...this: any
      • event: PointerEvent

        Click event

      • target: HTMLElement

      Returns void