ID of the row a write is running on, so only its buttons go quiet.
Whether this user may publish to a role or to everyone.
A row was switched or removed, so the form has to resolve again.
Compiled BaseFormPanel registrations on this entity, for the inventory.
ID of the row awaiting a second press to confirm removal.
The form this user sees now; null when it is the generated form.
The component the panel being edited renders, for the placement preview.
What the placement dialog opens on while editing.
The row being re-placed, or null.
What the panel being edited is now: on, a draft, or off.
Who sees the panel being edited, for the placement dialog to state.
The entity whose form is being managed.
The user chose a different full custom form, or the generated form (null).
The full custom forms and the generated form, for the Form group.
Whether a full custom form owns this body, which holds everything else back.
The list, under headings.
The item whose audience is being chosen, or null.
What the item is now. Publishing turns it on, which the chooser says first.
The record the form is showing, for the placement dialog's preview. Null for a new record.
Related grids on this form, so editing can still offer to take one over.
Relationships the container fills a grid in for.
Section and rail titles by key, so a claim reads as a name.
The full custom forms the toolbar picker offers, in its order.
What publishing will do, stated before it is done.
Changing what other people see should never be a surprise, so the consequence is spelled out in the terms the publisher chose — which people, and on which records. Publishing turns the item on, so a draft or an item that is off says it will go live.
Whether the chosen audience is complete enough to publish.
Whether there is more than the generated form to choose from.
The roles a holder may publish to.
The audience label for a scope, as the chooser's options read it.
Publishes with the chosen audience. The Publish button that opened the chooser is disabled while the write runs, so focus waits on the drawer and goes back to the button afterwards, when it is still there and enabled.
A callback method that is invoked immediately after the default change detector has checked data-bound properties if at least one has changed, and before the view and content children are checked.
The changed properties.
Open the placement dialog on a row that is already on the form.
Editing in place is what "remove it and add it again" was standing in for. The dialog probes the form for itself, so the only context assembled here is what a probe cannot know: the related grids and the other panels already installed.
Clicking the backdrop closes the dialog; clicking the dialog itself does not.
Focus that moves to the page behind the drawer is brought back into it.
Hide a panel for this user. Nobody else is affected.
Keys pressed anywhere while the drawer is open, so they still reach it when the focused button was removed or disabled and focus fell to the page. Escape closes the top layer: the placement dialog, then the audience chooser, then the drawer. Tab and Shift+Tab wrap at the ends of that layer and bring focus back into it. Keys pressed in another overlay or modal, such as the icon picker's grid, are left to it.
Open the audience chooser on a full custom form.
Open the audience chooser on a panel.
Removal takes two presses on the same button rather than a second dialog. The drawer is already over the form, and a confirm dialog over a drawer over a form leaves the user two layers from the thing they are changing.
Bring back a panel this user hid.
Switch to another full custom form, or back to the generated form.
Rebuild the list from the engine's current rows.
Quiet until the first press; solid red while it waits for the second.
Seed the dialog with the row's own placement rather than a blank one.
Recomputed against the dialog's context each time it asks, not replayed: the dialog probes the form after it opens, so the first seed runs against a context with no sections, slots or rail in it and a stored claim would not match anything yet.
"Manage this form" — the one place to manage what is on an entity's form.
Lists the full custom forms available to the user and the panels on the form, grouped by who each belongs to, because that decides what the user may do: anything to their own, hide what is shared with them, nothing to a grid a relationship draws. Holders of the Manage Form Defaults authorization also get Publish and Audience, which change what other people see.
Every write goes through the admin service to the server, where the entity subclasses enforce the same rule this drawer uses to decide what to draw.