The live form's composition — sections, related grids, contributions, and the slots the form actually emits. Re-emitted on every chrome resolve.
The form is created dynamically inside <mj-entity-form-host>, so this relay is the
only route the snapshot has out to Explorer.
True once another user (another session) has deleted the record shown here. The tab is NOT closed under the user — they may be reading it — so a banner says so and offers to close it. Deletes in this session are handled by the shell, which closes the tab outright.
Edit mode of the hosted form started (true) or ended (false). Relayed from
<mj-entity-form-host> so the resource wrapper can tell the shell to
promote this tab. IsEditing remains as the synchronous fallback.
Use LoadComplete.
The same emitter under the old binding name, so a template still binding (loadComplete) keeps working. Must stay AFTER LoadComplete: class fields initialise in order, and the other way round this captures undefined.
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.
Use RecordDismissed.
The same emitter under the old binding name, so a template still binding (recordDismissed) keeps working. Must stay AFTER RecordDismissed: class fields initialise in order, and the other way round this captures undefined.
Emitted when the hosted form asks to be dismissed (e.g. Discard on a new record).
Use RecordSaved.
The same emitter under the old binding name, so a template still binding (recordSaved) keeps working. Must stay AFTER RecordSaved: class fields initialise in order, and the other way round this captures undefined.
StaticɵdirStaticɵfacUse NewRecordValues.
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 RunView provider or the one specified in the Provider property, if it was specified
Map the form's navigation requests onto Explorer's NavigationService.
True while the hosted form is in edit mode. The host already exposes the live form instance, so this is a read, not a new event pipeline.
MJ forms are read-only until the user explicitly clicks Edit, so edit mode is a deliberate gesture and a sound proxy for "there is work in here worth protecting" — which is all the preview-tab replacement guard needs.
A callback method that performs custom clean-up, invoked immediately before a directive, pipe, or service instance is destroyed.
Close this record's tab (the remote-delete banner's Close button).
Bind to the newly created form's composition stream.
The previous subscription is dropped first: the host re-creates the form when the user switches variants, and a retained subscription would let the replaced form keep publishing over the live one.
Use OnLoadComplete.
Unblock the shell's first-resource-load gate (success or error).
Log access for existing records once the form's record is ready.
Explorer-side host for a single entity record in the main tab area.
This is now a thin wrapper around the Generic
<mj-entity-form-host>(in@memberjunction/ng-base-forms), which owns all the mechanics: resolving the form (class / custom / interactive override + variants), loading the record, dynamically creating the form, binding it, and tearing it down.SingleRecordComponent's only remaining job is the Explorer mapping: translating the host's framework-agnostic events into Explorer services —
Navigate→ NavigationService,Notification→ SharedService, record loads → RecentAccessService — none of which belong in a Generic component.