public/formatting/Format-SpectreAligned.ps1
using module "..\..\private\completions\Completers.psm1" using module "..\..\private\completions\Transformers.psm1" function Format-SpectreAligned { <# .SYNOPSIS Wraps a renderable object in a Spectre Console Aligned object. .DESCRIPTION This wraps a renderable object in a Spectre Console Aligned object. This allows you to align the object horizontally and vertically within a space. Aligned objects are always expanded so they take up all available horizontal space. .PARAMETER Data The renderable object to align. .PARAMETER HorizontalAlignment The horizontal alignment of the object. .PARAMETER VerticalAlignment The vertical alignment of the object. .EXAMPLE "hello right hand side" | Format-SpectreAligned -HorizontalAlignment Right -VerticalAlignment Middle | Format-SpectrePanel -Expand -Height 9 #> [Reflection.AssemblyMetadata("title", "Format-SpectreAligned")] param( [Parameter(ValueFromPipeline, Mandatory)] [RenderableTransformationAttribute()] [object] $Data, [ValidateSet([SpectreConsoleHorizontalAlignment], ErrorMessage = "Value '{0}' is invalid. Try one of: {1}")] [string] $HorizontalAlignment = "Center", [ValidateSet([SpectreConsoleVerticalAlignment], ErrorMessage = "Value '{0}' is invalid. Try one of: {1}")] [string] $VerticalAlignment = "Middle" ) $aligned = [Spectre.Console.Align]::new( $Data, [Spectre.Console.HorizontalAlignment]::$HorizontalAlignment, [Spectre.Console.VerticalAlignment]::$VerticalAlignment ) return $aligned } |