dynamic-forms / Interface

FormOptions

Global form configuration options.

Controls form-wide behavior including disabled state and button behavior configuration.

Properties

NameTypeDescription
disabled
boolean | undefined

Disable the entire form.

When enabled, all form fields become read-only and cannot be modified by user interaction.

@value false

emitFormValueOnEvents
boolean | undefined

Whether to attach the current form value to all events dispatched through the EventBus.

This per-form setting overrides the global withEventFormValue() feature:

  • true - Enable form value emission for this form (even if globally disabled)
  • false - Disable form value emission for this form (even if globally enabled)
  • undefined - Use global setting (default)

When enabled, events will include a formValue property with the current form state. Use the hasFormValue() type guard to safely access this property.

Example usage
// Enable for this form only (no global withEventFormValue() needed)
const config: FormConfig = {
  fields: [...],
  options: { emitFormValueOnEvents: true }
};

// Disable for this form (when globally enabled)
const config: FormConfig = {
  fields: [...],
  options: { emitFormValueOnEvents: false }
};
maxDerivationIterations
number | undefined

Maximum number of iterations for derivation chain processing.

Derivations can trigger other derivations (e.g., A → B → C). This limit prevents infinite loops in case of circular dependencies that weren't caught at build time.

Increase this value if you have legitimate deep derivation chains (more than 10 levels deep).

@default 10

nextButton
NextButtonOptions | undefined

Default disabled behavior for next page buttons.

Controls when next page buttons are automatically disabled in paged forms. Can be overridden per-button via the logic array on individual button fields.

Example usage
options: {
  nextButton: {
    disableWhenPageInvalid: true,  // Disable when current page is invalid
    disableWhileSubmitting: true,  // Disable during submission
  }
}
submitButton
SubmitButtonOptions | undefined

Default disabled behavior for submit buttons.

Controls when submit buttons are automatically disabled. Can be overridden per-button via the logic array on individual button fields.

Example usage
options: {
  submitButton: {
    disableWhenInvalid: true,      // Disable when form is invalid
    disableWhileSubmitting: true,  // Disable during submission
  }
}

Example usage

options: {
  disabled: false,
  submitButton: { disableWhenInvalid: true }
}