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
    BeforeCloneEventArgs
    BeforeDeleteEventArgs
    BeforeHistoryViewEventArgs
    BeforeLayoutResolveEventArgs
    BeforeListManagementEventArgs
    BeforeRefreshEventArgs
    BeforeSaveEventArgs
    BeforeSectionActivateEventArgs
    CancellableFormEvent
    DefaultFKLookupStrategy
    DuplicateEntryCheckController
    DuplicateEntryCheckSession
    ExplorerEntityDataGridComponent
    FKLookupStrategy
    FormChromeCoordinator
    FormCompositionRegistry
    FormContributionsComponent
    FormFieldEditCoordinator
    FormFieldPanelSlotComponent
    FormPanelAdminService
    FormPanelSlotComponent
    FormPlacementPreview
    FormRecordRefreshCoordinator
    FormResolverService
    FormSectionIndicatorCoordinator
    FormSlotCoordinator
    FormSlotProbeService
    FormStateService
    InteractiveFormComponent
    InteractiveFormPanelComponent
    LinkedFieldOptionsStore
    MjCollapsiblePanelComponent
    MjEntityFormHostComponent
    MjFormDialogComponent
    MjFormFieldComponent
    MjFormPlacementDialogComponent
    MjFormPlacementPreviewComponent
    MJFormPresenterService
    MJFormRef
    MjFormSlideInComponent
    MjFormToolbarComponent
    MjFormWindowComponent
    MjIsaRelatedCardComponent
    MjIsaRelatedPanelComponent
    MjPanelManagerComponent
    MjRecordFormContainerComponent
    MjSectionManagerComponent
    PlacementPreviewPanelComponent
    RelatedEntityGridPanelComponent
    SectionLoaderComponent

    Interfaces

    BuildFormCompositionSnapshotInput
    BuildFormCountPlanInput
    BuildFormPanelHostPropsInput
    ChildEntityTypeNavigationEvent
    ChromeMembershipChange
    ChromeMembershipOverride
    ChromeSectionShape
    CollectFormContributionOptions
    CreateRelatedNavigationEvent
    CustomToolbarButton
    CustomToolbarButtonClickEventArgs
    DismissFormNavigationEvent
    DuplicateEntryCheckField
    DuplicateEntryCheckRecord
    EmailLinkNavigationEvent
    EntityFormConfig
    EntityFormOverrideRow
    EntityHierarchyNavigationEvent
    ExternalLinkNavigationEvent
    FKLookupChip
    FKLookupContext
    FKLookupGroup
    FKLookupRow
    FKLookupScopeLabels
    FKSearchableField
    FKSuggestion
    FKSuggestionColumn
    FormAgentContext
    FormAgentContextSection
    FormAudience
    FormChromeContext
    FormChromeGroup
    FormChromePanelSnapshot
    FormChromeSpec
    FormCompositionChoice
    FormCompositionContribution
    FormCompositionRailItem
    FormCompositionRelated
    FormCompositionSection
    FormCompositionSnapshot
    FormContext
    FormContributionCountSpec
    FormContributionRegistration
    FormContributionRelationship
    FormContributionWinner
    FormCountContribution
    FormCountPlan
    FormCountResults
    FormFieldEdit
    FormNotificationEvent
    FormOverrideRow
    FormPanelAdminResult
    FormPanelCompiledRow
    FormPanelContributionRow
    FormPanelRegistrationMetadata
    FormPanelRendering
    FormPanelStockGridRow
    FormPlacementContext
    FormPlacementDecision
    FormPlacementExisting
    FormPlacementField
    FormPlacementRailItem
    FormPlacementRelated
    FormPlacementSection
    FormPlacementState
    FormRecordRef
    FormSaveResult
    FormSectionCountTarget
    FormSectionFieldHost
    FormSectionIndicators
    FormSectionIndicatorSource
    FormSectionInfo
    FormSectionState
    FormState
    FormSystemCountTarget
    FormToolbarConfig
    FormToolbarItemClickEventArgs
    FormToolbarItemConfig
    FormVariantChoice
    IsaCardFieldDisplay
    IsaDescendantInfo
    IsaRelatedItem
    LinkedFieldOption
    MJFormPresenterOptions
    NewRecordNavigationEvent
    PanelDragStartEvent
    PanelDropEvent
    ParsedValidationSource
    PlacementPreviewComponent
    ProbedFormShape
    RecordDeletedEvent
    RecordDeleteFailedEvent
    RecordNavigationEvent
    RecordRefreshedEvent
    RecordSavedEvent
    RecordSaveFailedEvent
    ResolvedFormContributions
    ResolvedToolbarItem
    ResolveEmptySectionBehaviorInput
    ResolveFormChromeInput
    ResolveFormChromeResult
    ResolveFormContributionsInput
    ResolveFormContributionsResult
    SectionManagerItem
    SectionValidationScope
    SectionVisibilityRules
    ValidationFailedEvent
    VariantPickerItem

    Type Aliases

    BaseFormContext
    DuplicateEntryCheckFunction
    DuplicateEntryCheckSessionState
    DuplicateEntryCheckValue
    FieldRichTextMode
    FKLookupScope
    FormContributionKind
    FormContributionRegistrationSource
    FormCountPhase
    FormNavigationEvent
    FormOverlayCloseReason
    FormPanelSlot
    FormPlacementDroppedClaim
    FormPlacementReplaceMode
    FormResolution
    FormSystemCountKey
    FormToolbarItemKey
    FormWidthMode
    LinkedFieldUserOptions
    MJFormPresentation
    PanelVariant
    StandardToolbarItemKey
    ToolbarItemMode
    ToolbarItemPlacement
    ToolbarItemVariant

    Variables

    CUSTOM_LAYOUT_TOOLBAR_CONFIG
    DEFAULT_FORM_CHROME_SPEC
    DEFAULT_FORM_STATE
    DEFAULT_PINNED_TOOLBAR_ACTIONS
    DEFAULT_SECTION_STATE
    DEFAULT_TOOLBAR_CONFIG
    DETAILS_SECTION_KEY
    DETAILS_SECTION_TITLE
    DIALOG_FORM_CONFIG
    DUPLICATE_ENTRY_CHECK_BUDGET_MS
    DUPLICATE_ENTRY_CHECK_DEBOUNCE_MS
    DUPLICATE_ENTRY_CHECK_IN_FLIGHT_LIMIT_MS
    DUPLICATE_ENTRY_CHECK_MAX_FIELD_TEXT_LENGTH
    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_PLACEMENT_PREVIEW
    FORM_SECTION_FIELD_HOST
    FORM_SLOT_CHAIN
    MORE_SECTION_KEY
    PLACEMENT_PREVIEW_KEY
    SLIDEIN_FORM_CONFIG
    SYSTEM_METADATA_SECTION_KEY
    TAB_FORM_CONFIG
    TOOLBAR_PINS_SETTING_KEY

    Functions

    ApplyDecisionToSpec
    ApplyEmptySectionBehavior
    ApplyFormChromeRuleTitles
    ApplyFormCountResults
    ApplyUserChromeMembership
    BuildDefaultChromeSpec
    BuildDescendantTree
    BuildFormAgentContext
    BuildFormCompositionSnapshot
    BuildFormCountPlan
    BuildFormPanelHostProps
    BuildRelatedFormRoleCandidates
    ChromeGroupOrderIndex
    ClaimedCollectionErrors
    ClaimedRelatedSectionKeys
    ClampRailWidth
    CollapseFormPanelRegistrations
    CollectClassFormPanelRegistrations
    CollectFormContributionRegistrations
    CollectFormPanelRegistrations
    CombineFilters
    ContributionClaimedFieldNames
    ContributionClaimsFields
    ContributionDrawsInSection
    ContributionHiddenSectionKeys
    ContributionSectionKey
    ContributionSectionPosition
    ContributionSpecToRegistration
    createDefaultFormContext
    CreateDefaultFormContext
    CreateRelatedEntitySectionKeyResolver
    DefaultContributionChromeGroup
    DescribeSectionDirty
    DescribeSectionErrors
    DescribeSectionWarnings
    DetailsCardEdges
    DiscoverISADescendants
    DuplicateEntryCheckValues
    EscapeSqlLikeValue
    FieldGroupsInDetails
    FilterCachedFKRows
    ForgetHiddenPanelsSettings
    FormatFKCell
    FormChromeRailPinnedKey
    FormChromeRailWidthKey
    FormContributionEntityMatches
    FormCountPlanParams
    FormSectionCamelCase
    FormVariantChoices
    HiddenPanelKeys
    HiddenPanelsSetting
    HumanizeEntityTitle
    InvalidateFormContributionRegistrationCache
    IsAccordionFormChrome
    IsAlwaysMoreSection
    IsDetailsSectionKey
    IsFormSectionHidden
    IsPanelHiddenByUser
    IsWildcardPlaceClaim
    LoadFormChromeRules
    LoadInteractiveFormComponent
    MergeChromeGroupsByTitle
    MetadataContributionToRegistration
    MountFormContribution
    MoveChromeGroupInSectionOrder
    OrderChromeGroups
    OrderMoreSectionKeys
    OverlayChromeSectionOrder
    PanelHideKey
    ParseRailPinnedSetting
    ParseRailWidthSetting
    ParseValidationSource
    PlacedInSectionKey
    PlacementPreviewRegistration
    PlacementStateFromContribution
    QuoteSqlIdList
    RailGroupSectionKeys
    RankByPrefix
    RebuildChromeSpecMembership
    RelatedContributionKey
    RelatedEntitySectionKey
    RelatedGridHeightPx
    RelationshipDisplayName
    ReplacedSectionChromeGroup
    ReplacedSectionKeys
    ResolveContributionKey
    ResolveEmptySectionBehavior
    ResolveFKLookupStrategy
    ResolveFormChrome
    ResolveFormContributions
    ResolveFormContributionWinners
    ResolveFormPolicy
    ResolveFormShowToolbar
    ResolveFormToolbarConfig
    SectionDrawingAnyField
    SectionIndicatorsAreEmpty
    SectionOwnsValidationSource
    SectionRelevantFormContextChanged
    SerializeRailPinnedSetting
    SerializeRailWidthSetting
    SetPanelHidden
    ShouldPersistChromeActiveGroup
    SlotChromeGroup
    StabilizeFirstClassGroupOrder
    StripJoinFieldBrackets
    SumSectionIndicators
    TakeDecoratedChrome
    TallyValidationErrors
    UnsavedLeadGroupKey
    VisibleFormRelationships
    WithoutHiddenPanels
    WithPlacementPreview