The dashboard Home shows in place of its overview, or null on the overview.
ID of that dashboard, or null.
True when the dashboard view opens in edit mode. The editor reads it once, then sets it back to false.
Protecteddestroy$True while the named dashboard is being created.
True while the dashboard Home shows is in edit mode.
True until Home's first load finishes; the page shows its loading view meanwhile. A later app-list reload does not set it.
ProtectednavigationThe longest name the dialog accepts.
Tab ID for query param notification scoping. Set by resource wrappers that render child dashboards, so the child knows which tab it belongs to. If not set, falls back to Data.Configuration.tabId.
ReadonlyPinId of the menu's "Move to Group" header, which names the group rows.
The pin menu's max height in pixels: the room on its side of the button. Null while the menu is measured.
The pinned Config dashboards, in pin order, for the Dashboards switcher.
Whether the Pinned section is open. Saved for each user in the HomeApp.PinnedCollapsed setting.
The pin grid's runs: ungrouped pins first, then each group in group order.
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.
True while the New dashboard name dialog is open.
StaticɵdirStaticɵfacUse AppConfigDialog.
Use Apps.
Use AppsDisplayData.
The name of the dashboard Home shows, from the dashboard cache; null on the overview.
Use CurrentUser.
Use CurrentUser.
Use FavoriteDisplayNames.
Use Favorites.
Use FavoritesLoading.
Use FormattedDate.
Get formatted date string
Use Greeting.
Get a greeting based on time of day
The first name the greeting uses, or the user's display name.
Use HasSidebarContent.
Check if sidebar has any content to show
Use NotificationsLoading.
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
Use RecentItems.
Use RecentsLoading.
Wired by the tab container. true means the hosted form just entered edit
mode; the shell PROMOTES (pins) a records preview tab on that edge so the
record is never replaced by the next plain open — VS Code's
promote-on-modify. false is informational; promotion is sticky.
Returns either the default RunQuery 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
Use ShowConfigDialog.
True when Home shows a dashboard in place of its overview.
True when Home shows its overview: the greeting, Pinned and My applications.
The Quick Access button and sidebar show on the overview only: in the dashboard view the button would cover the header's actions.
Use SidebarOpen.
Use UnreadNotifications.
Permanently hide the "No pinned items yet" empty state for this user. Persisted in UserSettings via UserInfoEngine.
Filter apps by search query (matches app name or nav item labels)
Format a date for display (pure function, safe to call in template)
Get icon for an entity by name, using entity metadata Icon field (cached)
Get the display name for a favorite (resolved name or entity name fallback)
Extract input value from a DOM event (strict template helper)
Accent color for a pin — prefers the stored accentColor in Configuration, falls back to Color, then CSS var
Get icon for a pin based on resource type and metadata
ProtectedGetRead current query params from tab configuration. Use in initDashboard() / ngOnInit() to get initial URL state.
Get this component's tab ID. Checks ParentTabId input first (set by resource wrappers for child dashboards), then falls back to Data.Configuration.tabId.
Returns to the overview (switcher Home, breadcrumb Home) and removes the dashboard from the URL. Asks first when the open dashboard has unsaved changes. Returns false when the user keeps editing.
Hide the pin context menu
True while the dashboard Home shows is in edit mode (see BaseResourceComponent.IsEditing).
Manage pins (switcher): the overview with the pins in edit mode, and focus on the Pinned header. When the user keeps editing the open dashboard, Home stays on it and focus goes to its title.
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.
ProtectedNotifyAsk the host shell to close/dismiss this resource (typically: close the tab). Called by subclasses that hosted a form that emitted a 'dismiss' navigation event — most often, a brand-new record where the user clicked Discard. The record was never saved, the form is empty, and leaving it open serves no purpose. The tab-container listens for this and closes the workspace tab.
ProtectedNotifyCall this to notify the tab system that the resource's display name has changed. The tab container will update the tab title and browser title accordingly.
ProtectedNotifyTell the host shell the hosted form's edit mode changed. Subclasses that host an editable form call this from the form's EditModeChanged output.
ProtectedNotifyProtectedNotifyCallback from the Configure Action Pin dialog
Callback from the Run Action Pin dialog
Use OnConfigSaved.
Handle when config is saved
The editor entered or left edit mode. The editor can report leaving it while Home renders (it drops an edit when it gets another dashboard), so this sets no state the template reads, and tells the agent after the render.
Follows a link from a panel of the dashboard Home shows: a record, a dashboard or a query, as the dashboard tab does. Other link types are only logged.
The editor saved the dashboard, or its saved name changed: the switcher and the pin names read the new name from the cache.
The editor has shown a dashboard. Its title gets focus when Home asked for that (see focusTitleOnLoad).
The editor could not show the dashboard: Home returns to its overview and tells the user. A dashboard that a URL change named stays in the URL, since a write would add a history entry that every later Back lands on again. Any other dashboard is removed from the URL: one the user opened in Home, or the one Home opened with on its first load, so the tab does not keep it.
Navigate to a favorite item using NavigationService
Closes the name dialog; nothing is created.
Creates the named dashboard, pins it to Home and shows it in Home in edit mode. When the save fails, the dialog stays open with the name and the user is told. A second Create while one runs is ignored.
Navigate to a notification using NavigationService
Set a section's collapsed state in the Add Pin panel from the accordion panel's (ExpandedChange) output. The accordion reports the EXPANDED state, which is the inverse of our stored COLLAPSED flag. OnPush component, so mark for check after mutating the map.
Opens a pinned resource. A click in edit mode does nothing. A dashboard the click shows in Home gets focus on its title once the editor has shown it.
Edit in a pin's menu: closes the menu, puts the pins in edit mode (opening a collapsed Pinned section) and starts renaming the pin, with focus in its rename box. For a dashboard pin the user cannot rename, it says why and moves focus to Done instead.
Keys in the pin options menu: ArrowDown, ArrowUp, Home and End move between the rows. Escape closes the menu and puts focus back on its button. Tab closes it too, and the browser moves focus on from the button.
Move a pin to a different group
Unpin a resource from the pin context menu
Enter in a pin's rename box: saves the name, then moves focus to Done, since the box goes away.
Opens or collapses the Pinned section, saves the choice for the user and reports it to the agent.
ProtectedOnApplies the dashboard the URL names, for back and forward, deep links and pins of Home.
A pick in a Dashboards switcher, or the breadcrumb's Home: null returns to the overview, an id opens that dashboard in Home. Focus then moves to what shows.
ProtectedonHook for a host that instantiates CHILD resource components: re-home them here.
A host stamps its children with its tab id when it creates them, which is a SNAPSHOT. A cache reattach moves the host to a different tab without recreating anything, so a child left holding the birth tab's id would go on reading and — worse — writing that tab's params from inside a tab it no longer belongs to. That is the same cross-tab corruption this class refuses elsewhere, just arriving by a slower route, so the stamp has to move when the host does.
Default is a no-op: a component with no children has nothing to re-home.
Open the Configure Action Pin dialog — triggered when the user clicks an Action in the Add Pin panel. Actions need extra configuration (preset params, runtime params, title, theming) before they can be pinned.
Use OpenConfigDialog.
Open app configuration dialog
Opens the dashboard in a tab of the Dashboards app, installing the app first when the user lacks it.
Shows a dashboard inside Home in place of the overview and writes it to the URL (?dashboard=
The switcher's New dashboard: asks to leave unsaved changes first, then asks for the name.
Pin an app nav item from the Add Panel
Pin a resource from the Add Panel
The name a pin shows: a dashboard pin shows its dashboard's name from the cache; other pins show their own.
Re-home this component to a different tab (cache reattach across tab ids). Replaces the reactive param subscription with one bound to the new tab and resets the duplicate-delivery key so the new tab's CURRENT params apply as a fresh mount would — the replay-on-subscribe delivers them immediately.
ProtectedRefreshMarks this component's view (and its ancestors) as needing change detection and schedules a tick — the reliable way for a resource component to re-render after updating state from async work (RunView/RunQuery continuations, timers, websocket pushes, RxJS subscriptions).
WHY THIS EXISTS: the Explorer shell hosts resource components dynamically — createComponent()
ApplicationRef.attachView() — because tab content mounts into Golden Layout / cached DOM
containers, not into an Angular template. Since Angular 18's change-detection scheduler
rework (Explorer is on Angular 21), ApplicationRef.tick() only refreshes attached views
that are FLAGGED dirty; a root-level attached view whose component mutates plain fields from
an async continuation is never flagged, so the view silently never re-renders — even though
the component uses default (non-OnPush) change detection (issue #3106).The framework calls this automatically from NotifyLoadStarted() / NotifyLoadComplete(), so the standard load lifecycle re-renders without any subclass action. Call it yourself after any LATER async state change that must reach the DOM outside those signals.
ProtectedrehomeRe-homes a child this component created to tabId.
The ParentTabId stamp is cleared FIRST and deliberately: getTabId() prefers it over the
rebound id, so leaving the old stamp in place would make the child's own RebindTabId a
no-op — it early-returns when getTabId() already matches — and the child would keep
answering with the tab it was born in. Clearing it lets the rebind be the authority, and the
child re-delivers the NEW tab's current params exactly as a fresh mount would.
Remove a group - moves all pins to ungrouped
Remove a pin
ProtectedResourceSave edited group name - updates all pins in the group
Saves the name typed in a pin's rename box and closes the box. A dashboard pin renames its dashboard, since it shows the dashboard's name; other pins rename only the pin. An empty or unchanged name changes nothing. A call after the rename has ended does nothing: the browser can blur the box as it goes away.
Opens the pin options menu under the pin's ellipsis button, right-aligned and inside the viewport, and moves focus to its first row. A click elsewhere, Escape or Tab closes it.
Start editing a group name
Starts renaming a pin: shows its rename box, with focus in it and the name selected. A dashboard pin is renamed only by a user who can edit its dashboard; other users are told why not.
Toggle edit mode for pins. Entering edit mode opens a collapsed Pinned section.
Use ToggleSidebar.
Opens or closes the Quick Access sidebar and marks Home for check, so the change shows at the next render also when the agent's ToggleSidebar tool calls this outside a template event.
Track function for apps loop
Use TrackByNavItem.
Track function for nav items preview
Use TrackByNotification.
Track function for notifications
ProtectedUpdatePush query param changes to the URL. Creates a browser history entry. Safe to call during OnQueryParamsChanged — auto-suppressed to prevent loops.
The write is ALWAYS scoped to this component's own tab. A component that cannot identify its tab does not write at all — see the guard below.
Home Dashboard - Personalized home screen showing all available applications with quick access navigation and configuration options.
Uses OnPush change detection and cached computed values for optimal performance. Registered as a BaseResourceComponent so it can be used as a Custom resource type in nav items, allowing users to return to the Home dashboard after viewing orphan resources.