Member Junction
    Preparing search index...

    Base class for all Angular components in the MemberJunction system.

    Hierarchy (View Summary)

    Implements

    • OnInit
    • OnDestroy
    • AfterViewInit
    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    activeApp: BaseApplication | null = null
    activityItems: ActivityItem[] = []
    activityOpen: boolean = false
    activityRunningCount: number = 0
    appAccessDialog: AppAccessDialogComponent
    currentLoadingAnimation: "pulse" | "spin" | "bounce" | "pulse-spin" = 'pulse'
    currentLoadingColor: string
    currentLoadingGradient: LogoGradient | null
    currentLoadingText: string
    currentLoadingTextColor: string
    developerModeService: DeveloperModeService
    initialized: boolean = false
    isSearchOpen: boolean = false
    isViewingSystemTab: boolean = false
    leftOfSwitcherApps: BaseApplication[] = []

    Nav Bar apps positioned to the left of the app switcher. Backing field recomputed only when the active app or nav-app list changes (see recomputeNavBarApps) — NOT on every change-detection cycle, since this is bound directly in the shell nav template's @for/@if. Filters out apps that have HideNavBarIconWhenActive=true and are currently active.

    leftOfUserMenuApps: BaseApplication[] = []

    Nav Bar apps positioned to the left of the user menu. Backing field recomputed only when the active app or nav-app list changes (see recomputeNavBarApps). Filters out apps that have HideNavBarIconWhenActive=true and are currently active.

    LegacySearchOpen: boolean = false
    loading: boolean = true
    loadingAppId: string | null = null
    MJVersion: string = PACKAGE_VERSION

    MemberJunction framework version, shown in the loading screen and About dialog.

    mobileNavOpen: boolean = false
    omnibarPalette?: { Open(initialQuery?: string): void }
    OmnibarPromoText: "Try the new command palette — search, jump to records, switch apps, and message agents from one box." = 'Try the new command palette — search, jump to records, switch apps, and message agents from one box.'

    Promo copy shown in the legacy search surfaces.

    PinProgressText: string = ''
    PinProgressVisible: boolean = false
    Provider: IMetadataProvider | null

    If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.

    searchableEntities: EntityInfo[] = []
    searchInput: ElementRef<HTMLInputElement>
    selectedEntity: EntityInfo | null = null
    shellSearchComposite:
        | {
            MinRelevancePercent?: number;
            SelectedScopeIDs?: string[];
            Focus?(): void;
        }
        | undefined

    Legacy inline search composite (omnibar-off desktop). Structural typing keeps the shell decoupled from the ng-search component class.

    ShowResetOption: boolean = false
    tabBarVisible: boolean = true
    tabContainerRef: TabContainerComponent
    unreadNotificationCount: number = 0
    userEmail: string = ''
    userIconClass: string | null = null
    userImageURL: string = ''
    userMenuElements: UserMenuElement[] = []
    userMenuVisible: boolean = false
    userName: string = ''
    "ɵdir": unknown
    "ɵfac": unknown

    Accessors

    • get appSwitchingLocked(): boolean

      True when the auth session is locked to a single application (e.g. a magic-link session). The header hides app-switching chrome so the external user stays within their scoped app. Data access is still enforced server-side by the user's role; this is the UI-confinement layer.

      Returns boolean

    • get ProviderToUse(): IMetadataProvider

      Returns either the default Metadata provider or the one specified in the Provider property, if it was specified

      Returns IMetadataProvider

    • get RunQueryToUse(): IRunQueryProvider

      Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified

      Returns IRunQueryProvider

    • get RunReportToUse(): IRunReportProvider

      Returns either the default RunReport provider or the one specified in the Provider property, if it was specified

      Returns IRunReportProvider

    • get RunViewToUse(): IRunViewProvider

      Returns either the default RunView provider or the one specified in the Provider property, if it was specified

      Returns IRunViewProvider

    • get ShowOmnibarPromo(): boolean

      Whether the legacy search surfaces advertise the omnibar: the instance makes it available, the user hasn't opted in yet, and they haven't dismissed the promo. Fail-closed (never advertise during boot / permission constraints).

      Returns boolean

    • get UseOmnibar(): boolean

      Two-layer gate for the unified Ctrl+K command palette (omnibar): the 'Shell.Omnibar.Enabled' Instance Config row is the master AVAILABILITY switch (default TRUE; false = legacy trio for everyone), and each user opts in personally via My Profile → Command Palette (a UserInfoEngine setting, so the choice follows them across devices). ON = the header shows the palette affordance and Ctrl+K / Ctrl+/ open the palette; OFF = the legacy trio (search composite + app command palette + search popup) behaves exactly as before. Both reads are synchronous cache hits.

      Returns boolean

    Methods

    • A callback method that is invoked immediately after Angular has completed initialization of a component's view. It is invoked only once when the view is instantiated.

      Returns void

    • A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.

      Returns Promise<void>

    • Header search affordance / Ctrl+K: route to whichever search surface applies. The mobile check matters: below the breakpoint the composite is CSS-hidden (.desktop-only) but its ViewChild still exists — focusing an invisible input would silently eat the interaction.

      Returns void

    • Promo accepted: opt the user in (same UserInfoEngine setting as the My Profile toggle, so it follows them across devices), then open the palette pre-seeded with whatever they were just searching — same query, new surface, immediate demonstration.

      Parameters

      • query: string

      Returns void

    • Legacy search overlay selection → same navigation path as the old composite.

      Parameters

      • event: {
            Result: {
                EntityName: string;
                RawMetadata?: string;
                RecordID: string;
                ResultType?: string;
            };
        }

      Returns void

    • Parameters

      • result: {
            EntityName: string;
            RawMetadata?: string;
            RecordID: string;
            ResultType?: string;
        }

      Returns void

    • Nuclear recovery: reset server-side workspace, clear all browser-side cached data, and reload the page. This recovers from stuck loading states caused by corrupted, stale, or incompatible workspace/tab data (e.g., after a version upgrade that changes the workspace configuration schema).

      Returns Promise<void>