Skip to content

Release v4.68.0

Choose a tag to compare

@github-actions github-actions released this 17 Oct 06:33
96e83d6

Part of #157. #186; follow-on to #160 (planShellSwitch).

Added

  • applyShellSwitch(document, plan, templates?) (@cratis/scene.engine) and ShellSwitchApplier.Apply (C#, Cratis.Scene.Engine.Shell) apply a planShellSwitch plan 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.PlacementOf expose where a screen template's chain lands in the shell; outletsUsedBy now 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").