The current pipeline run ID (from GraphQL subscription)
The process run ID (server-side ContentProcessRun) for pause/cancel/resume
Protecteddestroy$ID of the content item shown in the drilldown slide-in, or null when closed.
Lightweight count of Pending health-signal suggestions for the Health nav badge.
Lightweight count of Pending tag suggestions for the Inbox nav badge.
True while a "Load more" fetch is in flight.
ProtectednavigationWhether the onboarding card has been dismissed this session.
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.
StaticɵdirStaticɵfacThe active tab. Backed by a setter that, once the view is ready, synchronously
flushes change detection whenever the value changes. The left-nav binds
[ActiveId]="ActiveTab"; mutating this during an async gap in init (e.g. between
the await in ngAfterViewInit and the next CD pass) previously surfaced an NG0100
(Previous value: 'pipeline'. Current value: 'sources'). Flushing in the setter
keeps the bound value stable across the check that follows.
Exposes raw content items to the Content Types / Tag Library tabs via [Items]/[ContentItems].
Exposes the raw run rows to the Run History tab component via [Runs].
Exposes raw content sources to the Content Types tab via [Sources].
Exposes raw content item tags to the Tag Library tab via [ContentTags].
Exposes raw content types to the Content Types tab via [ContentTypes].
Exposes the EntityRecordDocument ID→RecordID cache to the Sources tab via [EntityRecordDocCache].
True while a classification pipeline run is in flight. Backed by a setter
that flushes change detection once the view is ready, so the [disabled]="IsRunning"
Run button binding stays stable across the check that follows a within-cycle
flip (run starting / instantly completing on an empty source) — eliminating
the NG0100 (Previous value: 'true'. Current value: 'false'). Mirrors the
ActiveTab setter pattern above.
Wraps NavItems for <mj-left-nav>. Hardcoded "Run History" item goes
into a second MJLeftNavSection — the rail's natural section break
replaces the bespoke .at-nav-divider line.
Memoized: the array (and its element objects) are rebuilt only when one of
the inputs actually changes. Returning a fresh array on every change-detection
pass made <mj-left-nav> see a new [Sections] reference each cycle, which
triggered ExpressionChangedAfterItHasBeenCheckedError (NG0100) during rapid
tab switching (badge counts / IsRunning resolving mid-CD-cycle). A stable
reference until inputs change eliminates that.
Index of the first incomplete step (the "active" one).
Steps for the first-run onboarding checklist, with live completion state.
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
Exposes the cached ScheduledAction entities to the Sources tab via [ScheduledActions].
Show the guided onboarding checklist until content has been classified.
Exposes the accurate total item count to the Content Types / Sources tabs via [TotalItemCount].
Exposes the accurate total tag count to the Sources tab via [TotalTagCount].
Exposes the accurate total run-history count to the Run History tab via [TotalRunCount].
Cancel a running or paused pipeline. Uses pause mechanism and resets UI state.
Confirm a content duplicate pair
Dismiss a content duplicate pair
Dismiss the onboarding card (until next load / still empty).
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.
Load pending content item duplicates for review
D2: Load live per-source progress for the currently running pipeline. Called when the pipeline is actively running.
Widen the loaded content-item window by one page and reload, so the user can
see items previously truncated by the MaxRows cap. Wired to the pipeline
tab's (LoadMoreItemsRequested).
Host handler for the Run History tab's (LoadMoreRequested) output. Widens
the loaded window by one page and reloads, so the user can see the runs that
were previously truncated. The new array re-binds via [Runs].
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.
ProtectedNotifyProtectedNotifyThe form dialog's "Open advanced settings" link bubbles up here so the host (which owns NavigationService) can open the full entity form.
Reload the relevant shared data after the slide-in form saves. The form dialog closes itself; the host only re-pulls the cards' source data.
Fired by the Health tab after a merge/deprecate/dismiss. Refreshes the Health nav badge count.
Fired by the Inbox tab after a suggestion is approved/merged/rejected. Refreshes the nav badge count.
Handle an onboarding step CTA.
Fired by the Health tab's "Review in Taxonomy" action with a tag ID. The Taxonomy tab has no public select-tag input today, so this simply switches to it; selecting the specific node is a future enhancement.
ProtectedOnCalled by the framework when query params change from an external source (browser back/forward, deep link navigation). Override in subclasses to react to query param changes.
The new query params from the URL
'popstate' for back/forward, 'deeplink' for external URL entry
Reload the shared source list after the Sources tab mutates a source
(delete / schedule change). Rebinding contentSourcesRaw flows through the
tab's [Sources] input setter, which rebuilds its cards.
Hook for the Taxonomy tab's (DataChanged) output. The taxonomy tab owns
and reloads its own data; the host has no shared taxonomy surface to
refresh today, so this is a no-op placeholder kept for future cross-tab wiring.
After the wizard creates a source, reload the shared source list.
Handle a record-open intent bubbled up from the drilldown (item record, source, prompt run, entity record document). The host owns NavigationService.
Open content item detail slide-in by content item ID (used from tag drill-down)
Open the audit/analytics drilldown slide-in for a content item.
Open the guided setup wizard (empty-state CTA + "Add Source (Guided)").
Pause a running classification pipeline. The server sets CancellationRequested on the process run so the engine pauses gracefully after the current batch.
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.
Host handler for the Run History tab's (RefreshRequested) output. Forces a
reload of MJ: Content Process Runs; the new array re-binds via [Runs],
which rebuilds the tab's rows and clears its loading state.
ProtectedResourceResume a paused classification pipeline from its last completed offset.
OptionalcontentSourceIDs: string[]Run the pipeline for a specific content source only.
ProtectedUpdatePush query param changes to the URL. Creates a browser history entry. Safe to call during OnQueryParamsChanged — auto-suppressed to prevent loops.
Base class for all MJ Explorer navigation components - a navigation component is any component that can be displayed from a route