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

    Sheet for bmsEffect JournalEntryPages.

    Renders a full effect editor (changes, aura, triggers, modifications) on a journal page that serves as a master ActiveEffect template. Includes a draggable handle so pages can be dropped onto actor sheets to apply the effect with origin-based propagation.

    Hierarchy (View Summary)

    Indexable

    • [key: string]: any
    Index
    DEFAULT_OPTIONS: {
        actions: {
            addCondition: (event: any, target: any) => Promise<void>;
            addModification: (event: any, target: any) => void;
            addOutcome: (event: any, target: any) => Promise<void>;
            addSubCondition: (event: any, target: any) => Promise<void>;
            addTrigger: (event: any, target: any) => Promise<void>;
            configureAuraLight: (event: any, target: any) => Promise<void>;
            configureCondition: (event: any, target: any) => Promise<void>;
            configureOutcome: (event: any, target: any) => Promise<void>;
            configureSubCondition: (event: any, target: any) => Promise<void>;
            deleteCondition: (event: any, target: any) => Promise<void>;
            deleteModification: (event: any, target: any) => void;
            deleteOutcome: (event: any, target: any) => Promise<void>;
            deleteSubCondition: (event: any, target: any) => Promise<void>;
            deleteTrigger: (event: any, target: any) => Promise<void>;
            editImage: (event: any, target: any) => void;
            importTrigger: (event: any, target: any) => void;
            toggleConfigPanel: (event: any, target: any) => void;
        };
        classes: string[];
        form: {
            closeOnSubmit: boolean;
            handler: (event: any, form: any, formData: any) => Promise<void>;
            submitOnChange: boolean;
            submitOnClose: boolean;
        };
        position: { height: number; width: number };
        tag: string;
        window: { resizable: boolean };
    } = ...
    PARTS: {
        auraConfig: { scrollable: string[]; template: string };
        details: { scrollable: string[]; template: string };
        header: { template: string };
        modifications: { 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

    • 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

      • 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

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

    • Parameters

      • event: any
      • target: any

      Returns void

    • Parameters

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

      Returns Promise<void>