The user pressed Apply.
The user backed out.
Name of the component being placed, for the dialog heading.
A proposal's claim the caller's seed dropped because this form could not confirm it, for the summary to report while the answers do not make that claim. Null when the seed dropped none. The seed sets it; resetting the answers clears it, and so does reading the form's sections, before the seed runs again against them.
Offers keeping the panel off, for an edit of a panel that is off now.
The saved component of the panel being edited, for the same reason.
The component being placed, so the preview draws it rather than a placeholder.
True when the scaled form could not be drawn, so the list stands in for it.
Whether to read the entity's form to find out which positions it offers.
On by default: without it the list is the shape CodeGen produces, which is right for a generated form and can be wrong for a hand-written one. A host that already knows the slots, or one with no Angular form to render, turns it off.
True while the form is being read to find out which positions it offers.
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.
The record the scaled form preview shows. Null shows a new, unsaved record, which is what a dialog opened from a conversation has.
The saved row being edited, which the preview leaves off so it shows only the edit.
Who sees the panel, as the end of "visible to …". The caller alone unless the host says otherwise.
StaticɵdirStaticɵfacTrue when the panel will add a rail item rather than join one.
A bare strip that replaces blocks takes their place in their tab, rather than above every tab.
A form with no panels on it yet has nothing for this one to stand in for.
Whether standing in for fields is offered.
Only when the fields were read off a real form. Derived targets name the entity's fields rather than the ones this form draws, and a claim on a field the form does not draw hides nothing while still reading as applied.
Whether standing in for a whole tab is offered at all.
A form with no related grids has nothing for a panel to take over.
A form with no field sections has nothing for a panel to hide.
The names the claim will carry, kept to fields the chosen section really draws.
The chosen fields named in a line, for the note beside the choice.
How many panels the chosen tab holds, for the note beside the choice.
What the form contains. Setting it resets the answers.
How many sections the Details tab is made of, for the option that replaces all of them.
The fields of the section the user is choosing from.
A field claim that names no field claims nothing, so Apply would be a lie.
Sections whose fields a panel could stand in for.
Whether this form draws a side rail, so tabs are a thing the user can see.
True when the panel would carry no header of its own and none from the host.
A bare panel carries no chrome and no rail item, so a left-nav form has nowhere to file it and shows it above every section. Worth saying before it is applied.
Whether the panel replaces something, so the line offers a way back.
Whether every field group in the Details tab is going, so the tab itself is marked.
Whether a neighbour is there but the move has no order number to land on.
The panels in the chosen position, top to bottom, this one among them. Only worth showing when there is another panel to order against.
Sections a panel can be placed inside, for the position control.
One line saying where the panel goes and what it replaces.
The position control's value: a slot name, or in:<section key>:start|end for a place
inside a section. One control, because "above the fields" and "at the bottom of Details"
are answers to the same question.
The panel as it would be saved, for the preview to draw.
The same object comes back until an answer changes. The preview redraws the form each time this changes identity, and change detection reads it on every pass.
The component's own registration intent. Identity fields are read from it directly; its
claims reach the answers only through SeedState.
Returns either the default Metadata provider or the one specified in the Provider property, if it was specified
The tabs a panel may stand in for. Empty means the form shows no rail.
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
A section claim that names no section stands in for nothing, so Apply would be a lie.
True when the form bundles its field sections into a single Details tab, so the section names on offer are the parts of that tab rather than anything the user can point at on screen.
Whether hiding a section is a guess, because the targets were not read from the form.
A hook to overwrite the starting answers.
Without it the dialog starts from a fixed default. The caller seeds what only it knows: a saved row's placement when editing one, or a generated panel's proposed claims when applying one. It runs once the context, the proposal and the hook are all set, in whatever order they arrive.
Whether the real form is shown, scaled, in place of the list.
Not for a full custom form, which draws its own body and has no positions to show, and not when the form is not being read at all.
The slot between the fields and the related grids.
The positions to offer. Once the form's own set is known, a slot it does not emit is not shown: choosing it would silently resolve to the bottom of the form, so it is not a position the user can meaningfully pick.
Slots that sit above the field sections, so the preview renders in form order.
True when the list is the shape CodeGen produces rather than this form's own, because reading the form did not answer. A hand-written custom template can differ.
Slots that sit below the related grids.
When the panel starts: right away, as a draft, or, for a panel that is off, still off.
The rail item the panel will appear under, or null when it gets one of its own.
Stop replacing anything; the panel goes back to its chosen position.
Whether this preview block is the one a field claim lands inside.
Whether this field is in the claim.
Whether the related grid at this position will be taken over.
Whether this preview block will be taken off the form by the current choice.
Whether a section is among those the section mode stands in for.
Move this panel one place up or down among the panels in its position.
One section's label, told apart from the Details tab when they share a name.
Switch which section the claim draws from, dropping the fields chosen in the old one.
A claim renders at the top of ONE section, so fields from two of them describe a panel with two places to be. Clearing on switch makes that impossible to express rather than something the dialog has to refuse later.
Refuses a claim the form cannot honour, so the state can never describe a missing target.
Add or remove one field from the claim.
Add or remove one section from those the panel stands in for. The single key follows the first chosen section, so a one-section claim reads the same as it always has.
Asks where a generated panel should go before anything is written.
Presentational by design: it takes the form's composition and the component's own proposal, and emits the answers. It reads nothing and saves nothing, so the host owns both the fetch and the write, and this stays testable without a provider.
Scope is not a control here. The create path clamps every contribution to the calling user, deliberately — an agent must not be able to change another person's form — so the dialog states the audience rather than offering a choice it cannot honour. An edit from the Manage drawer keeps the panel's own audience, which the host states through VisibleTo.