Repository navigation
Release v4.68.0
Part of #157. #186; follow-on to #160 (planShellSwitch).
Added
applyShellSwitch(document, plan, templates?)(@cratis/scene.engine) andShellSwitchApplier.Apply(C#,Cratis.Scene.Engine.Shell) apply aplanShellSwitchplan as a pure function over the document: the content of a moved outlet is appended to the target outlet in order, dropped content is removed, kept outlets are untouched. A screen template that fits a moved outlet fits the new outlet instead (a name qualified with the old shell's is requalified with the new shell's, and a dropped outlet leaves the template placed explicitly), so the screens built from it move with it. The result carries the review list of what changed (screen or template, outlet, action, target, element count, a sentence with real names). A plan with blockers is not applied.templatePlacement/ShellPlacement.PlacementOfexpose where a screen template's chain lands in the shell;outletsUsedBynow uses it.shell-switch-apply-fixtures.json, asserted by both engines: keep, same shell, an outlet nobody uses, primary following to a differently named primary outlet, moving into an occupied primary outlet, mapping, several outlets into one, dropping, a template that fits the lost outlet (moved, mapped, dropped), qualified templates (moved, requalified), a nested template chain and a blocked plan.- Documentation in
blueprints/root-template.md("Applying the switch").