private/New-TableRow.ps1
function New-TableRow { param( [Parameter(Mandatory)] [Object] $Entry, [Spectre.Console.Color] $Color = [Spectre.Console.Color]::Default, [Switch] $AllowMarkup, [Switch] $Scalar, [hashtable] $Renderables ) Write-Debug "Module: $($ExecutionContext.SessionState.Module.Name) Command: $($MyInvocation.MyCommand.Name) Param: $($PSBoundParameters.GetEnumerator())" $opts = @{ AllowMarkup = $AllowMarkup } if ($scalar) { # Swap spectre renderable objects with the raw object $name = $Entry.ToString() if ($name.StartsWith("RENDERABLE__")) { $Entry = $renderables[$name] } New-TableCell -CellData $Entry -Color $Color @opts } else { # simplified, should be faster. $detectVT = '\x1b' $rows = foreach ($cell in $Entry) { if ([String]::IsNullOrEmpty($cell)) { New-TableCell -Color $Color @opts continue } if ($cell -match $detectVT) { ConvertTo-SpectreDecoration -String $cell @opts continue } # Swap spectre renderable objects with the raw spectre renderable object $name = $cell.ToString() if ($name.StartsWith("RENDERABLE__")) { $cell = $renderables[$name] } New-TableCell -CellData $cell -Color $Color @opts } return $rows } } |