Service for managing form state persistence per entity. State is stored in the User Settings entity and shared reactively across all form instances for the same entity.

Constructors

Properties

loadedEntities: Set<string> = ...

Track which entities have been loaded from DB

loadingPromises: Map<string, Promise<void>> = ...

Track loading promises to prevent duplicate loads

metadata: Metadata = ...
saveTimeouts: Map<string, Timeout> = ...

Debounce timeouts per entity name

stateCache: Map<string, BehaviorSubject<FormState>> = ...

Cache of BehaviorSubjects per entity name

Methods

  • Collapse all sections for an entity.

    Parameters

    • entityName: string

      The entity name

    • sectionKeys: string[]

      Array of all section keys to collapse

    Returns void

  • Debounced save to avoid too many writes.

    Parameters

    • entityName: string

    Returns void

  • Expand all sections for an entity.

    Parameters

    • entityName: string

      The entity name

    • sectionKeys: string[]

      Array of all section keys to expand

    Returns void

  • Get the count of expanded sections.

    Parameters

    • entityName: string

      The entity name

    • sectionKeys: string[]

      Array of section keys to check

    Returns number

    Number of expanded sections

  • Get section state, returning defaults if section doesn't exist yet.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    Returns FormSectionState

    Section state with defaults applied

  • Get section width mode.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    Returns "normal" | "full-width"

    Width mode ('normal' or 'full-width')

  • Generate the User Settings key for an entity.

    Parameters

    • entityName: string

    Returns string

  • Get showEmptyFields preference for an entity.

    Parameters

    • entityName: string

      The entity name

    Returns boolean

    Whether to show empty fields

  • Get the observable state for an entity. Automatically loads from User Settings on first access.

    Parameters

    • entityName: string

      The entity name

    Returns Observable<FormState>

    Observable of the form state

  • Initialize state for an entity by loading from User Settings. Call this when a form component initializes.

    Parameters

    • entityName: string

      The entity name

    Returns Promise<FormState>

  • Check if a section is expanded.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    Returns boolean

    True if expanded

  • Load state from User Settings using UserInfoEngine for cached access.

    Parameters

    • entityName: string

    Returns Promise<void>

  • Reset all panel widths to normal for an entity.

    Parameters

    • entityName: string

      The entity name

    Returns void

  • Reset state to defaults for an entity.

    Parameters

    • entityName: string

      The entity name

    Returns void

  • Save state to User Settings using UserInfoEngine for cached lookup.

    Parameters

    • entityName: string

    Returns Promise<void>

  • Set section expanded state.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    • isExpanded: boolean

      Whether the section is expanded

    Returns void

  • Set section width mode.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    • widthMode: "normal" | "full-width"

      The width mode

    Returns void

  • Set showEmptyFields preference for an entity.

    Parameters

    • entityName: string

      The entity name

    • show: boolean

      Whether to show empty fields

    Returns void

  • Toggle section expanded state.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    Returns void

  • Toggle section width mode between normal and full-width.

    Parameters

    • entityName: string

      The entity name

    • sectionKey: string

      The section key

    Returns void