Member Junction
    Preparing search index...

    Module @memberjunction/ng-base-forms

    @memberjunction/ng-base-forms

    The foundation for rendering and editing MemberJunction entity records in Angular — and for presenting any entity form as a full-page tab, a modal dialog, a slide-in panel, or a floating window, from one set of forms with no per-surface code and no regeneration.

    Start with the architecture guide: /guides/FORMS_ARCHITECTURE_GUIDE.md — the big picture, how generated/custom/interactive forms coexist, and how to use every surface. This README is a quick map of the package.

    Using these as general-purpose database controls (outside a form)? See STANDALONE_USAGE.md<mj-form-field>, <mj-entity-form-host>, the overlay shells, <mj-explorer-entity-data-grid>, and <mj-collapsible-panel> are all data-bindable controls you can drop into any Angular component with just a BaseEntity and an import of BaseFormsModule.

    Area Key exports Notes
    Form base BaseFormComponent, BaseFormSectionComponent, MjRecordFormContainerComponent, MjCollapsiblePanelComponent, MjFormFieldComponent The form itself + its toolbar/section container. Generated forms extend BaseFormComponent.
    Form host MjEntityFormHostComponent (<mj-entity-form-host>) Presentation-agnostic: resolve → load → create → bind → re-emit → teardown. Supports full forms and single sections (SectionName).
    Overlay shells MjFormDialogComponent, MjFormSlideInComponent, MjFormWindowComponent (standalone) Declarative dialog / slide-in / floating-window around the host.
    Imperative API MJFormPresenterService.Open(...)MJFormRef One call to open any form on any surface.
    Per-instance config EntityFormConfig + TAB_/DIALOG_/SLIDEIN_FORM_CONFIG Toolbar / related sections / collapsibility / width / record-links. Applied via the form reference — no regeneration.
    Form resolution FormResolverService Picks generated / custom / interactive-override form + variants (cached via InteractiveFormsEngine).
    Form extension BaseFormPanel + <mj-form-panel-slot> + <mj-form-contributions> Inject custom sections; claim a related-entity grid; fill in unbaked DisplayInForm relationships. See PANELS.md and /plans/form-contributions.md.
    Form chrome ResolveFormChrome, BaseFormPolicy, MJ: Form Chrome Rules L0–L4 stack: inclusion, Auto ranker, install overlay, user order. Policy is cosmetics only. Left-nav related grids fill leftover column height (display: contents on slot hosts; no accordion pixel pin). SetSectionRowCount upserts so contribution badges appear. Section search matches title/MatchesSearch, not IsVisible. See Forms Architecture §7d.
    New-record defaults BaseFormComponent.NewRecordValues / NewRecordValuesForJoinFields Related grids copy every join field onto the child. Explorer persists them as /record/:entity/new?NewRecordValues=....
    import { MJFormPresenterService, DIALOG_FORM_CONFIG } from '@memberjunction/ng-base-forms';

    const ref = this.forms.Open({
    EntityName: 'MJ: AI Agents',
    RecordId: id, // omit → new record
    Presentation: 'slide-in', // 'dialog' | 'slide-in' | 'window'
    Config: { ShowRelatedEntities: false },
    });
    const saved = await ref.AfterSaved(); // BaseEntity | null
    <mj-form-dialog [EntityName]="'Users'" [RecordID]="id"
    [(Visible)]="show" (Saved)="onSaved($event)"></mj-form-dialog>

    Classes

    AfterLayoutResolvedEventArgs
    AfterSectionActivatedEventArgs
    BaseFormComponent
    BaseFormOverlay
    BaseFormPanel
    BaseFormPolicy
    BaseFormSectionComponent
    BaseFormSectionInfo
    BaseFormsModule
    BaseRecordComponent
    BeforeCancelEventArgs
    BeforeDeleteEventArgs
    BeforeHistoryViewEventArgs
    BeforeLayoutResolveEventArgs
    BeforeListManagementEventArgs
    BeforeRefreshEventArgs
    BeforeSaveEventArgs
    BeforeSectionActivateEventArgs
    CancellableFormEvent
    ExplorerEntityDataGridComponent
    FormChromeCoordinator
    FormContributionsComponent
    FormPanelSlotComponent
    FormRecordRefreshCoordinator
    FormResolverService
    FormSectionIndicatorCoordinator
    FormSlotCoordinator
    FormStateService
    InteractiveFormComponent
    LinkedFieldOptionsStore
    MjCollapsiblePanelComponent
    MjEntityFormHostComponent
    MjFormDialogComponent
    MjFormFieldComponent
    MJFormPresenterService
    MJFormRef
    MjFormSlideInComponent
    MjFormToolbarComponent
    MjFormWindowComponent
    MjIsaRelatedCardComponent
    MjIsaRelatedPanelComponent
    MjRecordFormContainerComponent
    MjSectionManagerComponent
    RelatedEntityGridPanelComponent
    SectionLoaderComponent

    Interfaces

    ChildEntityTypeNavigationEvent
    ChromeMembershipChange
    ChromeMembershipOverride
    CreateRelatedNavigationEvent
    CustomToolbarButton
    CustomToolbarButtonClickEventArgs
    DismissFormNavigationEvent
    EmailLinkNavigationEvent
    EntityFormConfig
    EntityFormOverrideRow
    EntityHierarchyNavigationEvent
    ExternalLinkNavigationEvent
    FKSearchableField
    FKSuggestion
    FKSuggestionColumn
    FormChromeContext
    FormChromeGroup
    FormChromePanelSnapshot
    FormChromeSpec
    FormContext
    FormContributionRegistration
    FormContributionRelationship
    FormContributionWinner
    FormNotificationEvent
    FormPanelRegistrationMetadata
    FormSaveResult
    FormSectionIndicators
    FormSectionIndicatorSource
    FormSectionInfo
    FormSectionState
    FormState
    FormToolbarConfig
    FormToolbarItemClickEventArgs
    FormToolbarItemConfig
    IsaCardFieldDisplay
    IsaDescendantInfo
    IsaRelatedItem
    LinkedFieldOption
    MJFormPresenterOptions
    NewRecordNavigationEvent
    PanelDragStartEvent
    PanelDropEvent
    ParsedValidationSource
    RecordDeletedEvent
    RecordDeleteFailedEvent
    RecordNavigationEvent
    RecordRefreshedEvent
    RecordSavedEvent
    RecordSaveFailedEvent
    ResolvedToolbarItem
    ResolveFormChromeInput
    ResolveFormChromeResult
    ResolveFormContributionsInput
    ResolveFormContributionsResult
    SectionManagerItem
    SectionValidationScope
    SectionVisibilityRules
    ValidationFailedEvent
    VariantPickerItem

    Type Aliases

    BaseFormContext
    FieldRichTextMode
    FormContributionKind
    FormNavigationEvent
    FormOverlayCloseReason
    FormPanelSlot
    FormResolution
    FormToolbarItemKey
    FormWidthMode
    LinkedFieldUserOptions
    MJFormPresentation
    PanelVariant
    StandardToolbarItemKey
    ToolbarItemMode
    ToolbarItemPlacement
    ToolbarItemVariant

    Variables

    CUSTOM_LAYOUT_TOOLBAR_CONFIG
    DEFAULT_FORM_CHROME_SPEC
    DEFAULT_FORM_STATE
    DEFAULT_SECTION_STATE
    DEFAULT_TOOLBAR_CONFIG
    DETAILS_SECTION_KEY
    DIALOG_FORM_CONFIG
    EMPTY_SECTION_INDICATORS
    EXPLORER_TOOLBAR_CONFIG
    FORM_CHROME_RAIL_COLLAPSED_PX
    FORM_CHROME_RAIL_PINNED_DEFAULT
    FORM_CHROME_RAIL_WIDTH_DEFAULT
    FORM_CHROME_RAIL_WIDTH_MAX
    FORM_CHROME_RAIL_WIDTH_MIN
    FORM_CHROME_RULES_ENTITY
    FORM_SLOT_CHAIN
    MORE_SECTION_KEY
    SLIDEIN_FORM_CONFIG
    SYSTEM_METADATA_SECTION_KEY
    TAB_FORM_CONFIG

    Functions

    ApplyFormChromeRuleTitles
    ApplyUserChromeMembership
    BuildDefaultChromeSpec
    BuildDescendantTree
    BuildRelatedFormRoleCandidates
    ChromeGroupOrderIndex
    ClaimedCollectionErrors
    ClaimedRelatedSectionKeys
    ClampRailWidth
    CollapseFormPanelRegistrations
    CollectFormPanelRegistrations
    ContributionHiddenSectionKeys
    createDefaultFormContext
    DescribeSectionDirty
    DescribeSectionErrors
    DescribeSectionWarnings
    DetailsCardEdges
    DiscoverISADescendants
    FilterCachedFKRows
    FormatFKCell
    FormChromeRailPinnedKey
    FormChromeRailWidthKey
    FormSectionCamelCase
    HumanizeEntityTitle
    IsAccordionFormChrome
    IsAlwaysMoreSection
    IsDetailsSectionKey
    IsFormSectionHidden
    LoadFormChromeRules
    LoadInteractiveFormComponent
    MergeChromeGroupsByTitle
    MoveChromeGroupInSectionOrder
    OrderChromeGroups
    OrderMoreSectionKeys
    OverlayChromeSectionOrder
    ParseRailPinnedSetting
    ParseRailWidthSetting
    ParseValidationSource
    RebuildChromeSpecMembership
    RelatedContributionKey
    RelatedEntitySectionKey
    RelatedGridHeightPx
    RelationshipDisplayName
    ResolveContributionKey
    ResolveFormChrome
    ResolveFormContributions
    ResolveFormPolicy
    ResolveFormShowToolbar
    ResolveFormToolbarConfig
    SectionIndicatorsAreEmpty
    SectionOwnsValidationSource
    SerializeRailPinnedSetting
    SerializeRailWidthSetting
    ShouldPersistChromeActiveGroup
    StabilizeFirstClassGroupOrder
    StripJoinFieldBrackets
    SumSectionIndicators
    TakeDecoratedChrome
    TallyValidationErrors
    UnsavedLeadGroupKey