Protected_Protected ReadonlydesignerAngular DI: write operations (create, modify, validate).
Protecteddestroy$Entities displayed in EntityListComponent — set by loadData().
Subclasses can emit anytime an error occurs.
Subclasses can emit this event anytime they want to communicate with the container to let it know that something has happened of significance.
ID of the entity currently being modified; null if panel is closed.
ProtectednavigationSubclasses can emit this event anytime they want to open a record within a particular entity. The container should handle this event and open the record.
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.
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.
Whether the Create Wizard drawer is open.
Subclasses should emit this event anytime their internal state changes in a way that they'd like to persist.
StaticɵdirStaticɵfacSet or change the dashboard configuration. Changing this property will NOT cause the dashboard to reload. Call Refresh() to do that.
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
Registered Name of the entity whose detail panel is open, resolved from the loaded list. Null when nothing is selected or the id is not (yet) in the list.
ProtectedGetRead current query params from tab configuration. Use in initDashboard() / ngOnInit() to get initial URL state.
Sub-classes can override this to provide a custom icon class
Get this component's tab ID. Checks ParentTabId input first (set by resource wrappers for child dashboards), then falls back to Data.Configuration.tabId.
ProtectedinitSync ?entity=
ProtectedloadLoad accessible entities from the engine's cached store.
ReadonlyModifyPassed as [CanClose] to the modify slide panel.
Prevents the panel from closing while a pipeline is running and prompts the user
for confirmation. Defined as an arrow function so this is captured correctly
when called by MjSlidePanelComponent (no angular binding issues).
After the view initializes, publish the initial agent context and register the (read-only) client tools the AI agent can invoke against this surface. The ongoing context re-emit happens from loadData and the slide-panel handlers as the browse state changes.
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.
ProtectedNotifyProtectedNotifyOpens the Modify panel for an existing entity.
Called when the wizard successfully creates an entity.
Called when the modify wizard successfully alters an entity.
Called when the Modify panel drawer closes.
Opens the Create Wizard drawer.
ProtectedOnReact to ?entity= changes that arrive after initial load — e.g. clicking a Home pin for a specific entity, or browser back/forward — when this tab is re-focused rather than freshly mounted (so initDashboard() does not run again). Without this, the modify panel would not open for the pinned/linked entity. (initDashboard handles the very first load via _deepLinkEntityId.)
Opens the Modify panel (read-only view) for an existing entity.
Called when the Create Wizard drawer closes (cancel or success).
This method will result in the dashboard being reloaded.
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.
ProtectedResourceThis method can be used by a container to let the dashboard know that it is being opened/closed. Base class just sets a flag.
ProtectedUpdatePush query param changes to the URL. Creates a browser history entry. Safe to call during OnQueryParamsChanged — auto-suppressed to prevent loops.
Make the base class a directive so we can use Angular functionality and sub-classes can be
Component