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.
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.
ReadonlyMJMemberJunction framework version, shown in the loading screen and About dialog.
OptionalomnibarReadonlyOmnibarPromo copy shown in the legacy search surfaces.
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.
Legacy inline search composite (omnibar-off desktop). Structural typing keeps the shell decoupled from the ng-search component class.
StaticɵdirStaticɵfacTrue 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.
Whether the currently applied theme is dark (used by the toggle switch in the template)
Platform-correct summon-shortcut label ('⌘K' on Mac, 'Ctrl+K' elsewhere).
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified
Returns either the default RunReport provider or the one specified in the Provider property, if it was specified
Returns either the default RunView provider or the one specified in the Provider property, if it was specified
Instance Config gate for the app navigation strip (desktop and the mobile drawer).
Instance Config gate for the app switcher (also the add/configure-apps entry point).
Instance Config gate for the notification bell + unread badge (desktop and mobile).
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).
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.
Cast element to UserMenuItem (for template type safety) Call this only after checking !isMenuDivider(element)
Clear finished activities from the tracker.
Close mobile navigation drawer
Close search popup
Get user display info for template
Get user menu options for template
Global keyboard shortcut handler Cmd+/ (Mac) or Ctrl+/ (Windows) opens the command palette
Handle Golden Layout initialization failure
Case-insensitive UUID check whether an app is the currently active app.
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.
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
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.
Handle dialog result (install, enable, or redirect)
Handle app switch from app switcher
Close the Activity drawer when clicking anywhere outside it.
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.
Log current workspace configuration to console (debug)
Logout user and clear authentication data
Handle Nav Bar app icon click (single click switches to app)
Handle Nav Bar app icon double-click (opens in new tab)
Handle navigation item click with shift-key detection
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.
Promo dismissed: persist server-side so it never shows again, on any device.
Legacy search overlay selection → same navigation path as the old composite.
Legacy search overlay "See all results" → the full Search Results workspace (same destination as the omnibar's see-all row).
Palette footer gear → My Profile (where the Command Palette section lives).
Reset workspace layout - clears all tabs and switches to single-resource mode
Handle search submission
Inline composite submit (Enter) → full Search Results workspace, carrying the composite's relevance/scope selections.
Inline composite's suggest-dropdown "See all N results" footer.
Handle user menu item click
Header affordance click → open the palette.
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).
Open the feedback dialog with current workspace context. Captures a screenshot in the background and attaches it once ready.
Toggle the global Activity drawer.
Toggle mobile navigation drawer
Toggle search popup visibility
Toggle user menu visibility
Base class for all Angular components in the MemberJunction system.