Body, Mind & Soul — API Reference
    Preparing search index...

    Sheet for bmsStackableEffect JournalEntryPages.

    Extends the base effect page sheet with a Stages tab for defining per-threshold payloads (name, modifications, triggers, drawAppend). Pages of this type are pure templates — they carry no live stack count; each spawned AE instance tracks its own stackCount independently.

    Hierarchy (View Summary)

    Indexable

    • [key: string]: any
    Index
    DEFAULT_OPTIONS: {
        actions: {
            addStage: (event: any, target: any) => Promise<void>;
            addStageCondition: (event: any, target: any) => Promise<void>;
            addStageModification: (event: any, target: any) => Promise<void>;
            addStageOutcome: (event: any, target: any) => Promise<void>;
            addStageTrigger: (event: any, target: any) => Promise<void>;
            configureStageCondition: (event: any, target: any) => Promise<void>;
            configureStageOutcome: (event: any, target: any) => Promise<void>;
            deleteStage: (event: any, target: any) => Promise<void>;
            deleteStageCondition: (event: any, target: any) => Promise<void>;
            deleteStageModification: (event: any, target: any) => Promise<void>;
            deleteStageOutcome: (event: any, target: any) => Promise<void>;
            deleteStageTrigger: (event: any, target: any) => Promise<void>;
            importStageTrigger: (event: any, target: any) => void;
            toggleStagePanel: (event: any, target: any) => Promise<void>;
        };
    } = ...
    PARTS: {
        auraConfig: { scrollable: string[]; template: string };
        details: { scrollable: string[]; template: string };
        header: { template: string };
        modifications: { scrollable: string[]; template: string };
        stages: { scrollable: string[]; template: string };
        tabs: { template: string };
        triggers: { scrollable: string[]; template: string };
    } = ...
    TABS: {
        primary: {
            initial: string;
            labelPrefix: string;
            tabs: { icon: string; id: string; tooltip: string }[];
        };
    } = ...
    TEMPLATE_ROOT: string = "systems/body-mind-and-soul/templates/journal"
    • Parameters

      • combobox: any
      • fieldOptions: any

      Returns void

    • When rendered inline inside a JournalEntrySheet the root element is a

      (tag: "div" passed by getPageSheet), not a
      . Our inputs sit loose inside the journal entry's own (which also has name="name" for the entry title). The journal form's submitOnChange would collect BOTH name fields, corrupting the entry name.

      Fix: when there is no local , attach a delegated change listener to our root element that (a) stops the event from propagating to the outer form and (b) handles the save itself, mirroring submitOnChange behaviour.

      Trigger/modification inputs already call ev.stopPropagation() in their own part listeners, so they never reach this handler.

      Returns void

    • Parameters

      • partId: any
      • htmlElement: any
      • options: any

      Returns void

    • Parameters

      • combobox: any
      • fieldOptions: any

      Returns void

    • Parameters

      • htmlElement: any

      Returns void

    • Per-sheet-class storage key — all sheets of the same class share a remembered tab.

      Returns string

    • Returns { group: any; label: any; value: string }[]

    • Parameters

      • row: any
      • fieldValue: any

      Returns void

    • Parameters

      • fieldValue: any

      Returns "resource" | "attribute" | "vital" | "resistance" | "vector" | "damage"

    • Parameters

      • threshold: any

      Returns any

    • Parameters

      • threshold: any
      • field: any
      • target: any

      Returns Promise<void>

    • Parameters

      • context: any
      • options: any

      Returns void

    • Parameters

      • options: any

      Returns Promise<any>

    • Parameters

      • partId: any
      • context: any
      • options: any

      Returns Promise<any>

    • Build trigger template context from the data model.

      Parameters

      • context: any

      Returns void

    • Parameters

      • oldKey: any
      • newKey: any

      Returns Promise<any>

    • Parameters

      • threshold: any
      • mods: any

      Returns Promise<any>

    • Foundry's changeTab uses this.#content (window-content) to find the nav element, but we've moved the nav outside window-content. Temporarily re-insert it for the synchronous tab switch, then move it back out.

      Parameters

      • tab: any
      • group: any
      • options: {} = {}

      Returns any

    • Suppress standalone sheet rendering when the parent journal entry's sheet is already open — Foundry's createDialog opens both the parent journal (inline view) and the page's own sheet, causing a double-open.

      Parameters

      • options: {} = {}
      • _options: {} = {}

      Returns any

    • Parameters

      • event: any
      • target: any

      Returns void

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns void

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns void

    • Parameters

      • event: any
      • form: any
      • formData: any

      Returns Promise<void>

    • Parameters

      • event: any
      • target: any

      Returns Promise<void>