core/private/Write-JaxFramedKeyValueLine.ps1
|
function Write-JaxFramedKeyValueLine { [CmdletBinding()] param ( [string] $Label, [string] $Value, [int] $MaxLen, [string] $FrameColor = 'DarkGray', [string] $LabelColor = 'DarkGray', [string] $ValueColor = 'White', [string] $Separator = ': ', [int] $ValueVisibleLength ) $text = $Label $visibleLen = $Label.Length if (-not [string]::IsNullOrWhiteSpace($Value)) { $text = "{0}{1}{2}" -f $Label, $Separator, $Value $vLen = if ($PSBoundParameters.ContainsKey('ValueVisibleLength')) { $ValueVisibleLength } else { $Value.Length } $visibleLen += $Separator.Length + $vLen } $padding = '' if ($MaxLen -gt $visibleLen) { $padding = ' ' * ($MaxLen - $visibleLen) } Write-JaxConsoleLine -Text '┃ ' -Color $FrameColor -NoNewline if (-not [string]::IsNullOrWhiteSpace($Label)) { $labelText = if ([string]::IsNullOrWhiteSpace($Value)) { $Label } else { "{0}{1}" -f $Label, $Separator } Write-JaxConsoleLine -Text $labelText -Color $LabelColor -NoNewline } if (-not [string]::IsNullOrWhiteSpace($Value)) { Write-JaxConsoleLine -Text $Value -Color $ValueColor -NoNewline } if (-not [string]::IsNullOrEmpty($padding)) { Write-JaxConsoleLine -Text $padding -Color $ValueColor -NoNewline } Write-JaxConsoleLine -Text ' ┃' -Color $FrameColor } |