Member Junction
    Preparing search index...

    Module @memberjunction/ng-base-types - v5.49.0

    @memberjunction/ng-base-types

    Foundational types and base classes for Angular components in the MemberJunction ecosystem, providing standardized provider management and form event coordination.

    This package provides essential building blocks that other MemberJunction Angular packages depend on. It exports BaseAngularComponent, an abstract base class that standardizes data provider access across the component tree, and a set of form event types used for coordinating save/delete operations across form sub-components.

    graph TD
        A["@memberjunction/ng-base-types"] --> B[BaseAngularComponent]
        A --> C[Form Event System]
    
        B --> B1["ProviderToUse
        (IMetadataProvider)"]
        B --> B2["RunViewToUse
        (IRunViewProvider)"]
        B --> B3["RunQueryToUse
        (IRunQueryProvider)"]
        B --> B4["RunReportToUse
        (IRunReportProvider)"]
    
        C --> C1[BaseFormComponentEvent]
        C --> C2[FormEditingCompleteEvent]
        C --> C3[PendingRecordItem]
        C --> C4[BaseFormComponentEventCodes]
    
        style A fill:#2d6a9f,stroke:#1a4971,color:#fff
        style B fill:#7c5295,stroke:#563a6b,color:#fff
        style C fill:#2d8659,stroke:#1a5c3a,color:#fff
    
    npm install @memberjunction/ng-base-types
    

    Abstract base class that all MemberJunction Angular components should extend for standardized provider management:

    import { BaseAngularComponent } from '@memberjunction/ng-base-types';

    @Component({
    selector: 'my-component',
    templateUrl: './my-component.html'
    })
    export class MyComponent extends BaseAngularComponent {
    async loadData() {
    // Access the metadata provider
    const metadata = this.ProviderToUse;

    // Use RunView functionality
    const viewProvider = this.RunViewToUse;

    // Execute queries
    const queryProvider = this.RunQueryToUse;

    // Run reports
    const reportProvider = this.RunReportToUse;
    }
    }
    Property Type Description
    Provider IMetadataProvider | null Optional custom provider instance. If not specified, uses the default global provider.
    Method Return Type Description
    ProviderToUse IMetadataProvider Returns the Provider if specified, otherwise returns Metadata.Provider
    RunViewToUse IRunViewProvider Provider cast as IRunViewProvider for running views
    RunQueryToUse IRunQueryProvider Provider cast as IRunQueryProvider for executing queries
    RunReportToUse IRunReportProvider Provider cast as IRunReportProvider for running reports

    Constants for event type identification:

    const BaseFormComponentEventCodes = {
    BASE_CODE: 'BaseFormComponent_Event',
    EDITING_COMPLETE: 'EDITING_COMPLETE',
    REVERT_PENDING_CHANGES: 'REVERT_PENDING_CHANGES',
    POPULATE_PENDING_RECORDS: 'POPULATE_PENDING_RECORDS'
    }
    // Base event for form component communication
    class BaseFormComponentEvent {
    subEventCode: string;
    elementRef: unknown;
    returnValue: unknown;
    }

    // Emitted when form editing is complete, carrying pending changes
    class FormEditingCompleteEvent extends BaseFormComponentEvent {
    subEventCode: string = BaseFormComponentEventCodes.EDITING_COMPLETE;
    pendingChanges: PendingRecordItem[] = [];
    }

    // Represents a record pending save or delete
    class PendingRecordItem {
    entityObject: BaseEntity;
    action: 'save' | 'delete' = 'save';
    }
    import {
    BaseFormComponentEvent,
    BaseFormComponentEventCodes,
    FormEditingCompleteEvent,
    PendingRecordItem
    } from '@memberjunction/ng-base-types';

    onFormEvent(event: BaseFormComponentEvent) {
    switch (event.subEventCode) {
    case BaseFormComponentEventCodes.EDITING_COMPLETE:
    const editEvent = event as FormEditingCompleteEvent;
    this.processPendingChanges(editEvent.pendingChanges);
    break;
    case BaseFormComponentEventCodes.REVERT_PENDING_CHANGES:
    this.revertChanges();
    break;
    case BaseFormComponentEventCodes.POPULATE_PENDING_RECORDS:
    this.populateRecords();
    break;
    }
    }
    Package Description
    @memberjunction/core Core MemberJunction framework
    @memberjunction/core-entities Entity definitions
    @memberjunction/global Global utilities
    tslib TypeScript runtime helpers
    • @angular/common ^21.x
    • @angular/core ^21.x
    cd packages/Angular/Generic/base-types
    npm run build

    ISC

    Classes

    BaseAngularComponent
    BaseFormComponentEvent
    FormEditingCompleteEvent
    PendingRecordItem

    Type Aliases

    BaseFormComponentEventCodes

    Variables

    BaseFormComponentEventCodes