Public/Add-SlideChart.ps1
|
function Add-SlideChart { [CmdletBinding()] param( [Parameter(Mandatory)][object[]]$Data, [ValidateSet('HorizontalBar','Bar','Line','Sparkline','Gauge')][string]$ChartType = 'HorizontalBar', [string]$Region = 'Content', [int]$RevealStep = 0, [string]$Title ) $points = foreach ($item in $Data) { $label = Get-TerminalSemanticProperty $item Label $value = Get-TerminalSemanticProperty $item Value if ($null -eq $label -or $null -eq $value) { throw 'Chart rows require Label and Value properties.' } try { $number = [decimal]::Parse([string]$value, [Globalization.CultureInfo]::InvariantCulture) } catch { throw "Chart value '$value' is not numeric." } [TerminalSlides.Schema.V1.ChartPoint]::new([string]$label, $number) } $payload = [TerminalSlides.Schema.V1.ChartPayload]::new( [TerminalSlides.Schema.V1.ChartPoint[]]@($points), [TerminalSlides.Schema.V1.ChartKind]$ChartType, $Title ) Add-CurrentSlideElement -Element (New-InternalSlideElement -Kind Chart -Payload $payload -Region $Region -RevealStep $RevealStep) } |