Scripts/New-UDSingleSelector.ps1
<# .SYNOPSIS Sample control for UniversalDashboard. .DESCRIPTION Sample control function for UniversalDashboard. This function must have an ID and return a hash table. .PARAMETER Id An id for the component default value will be generated by new-guid. .EXAMPLE PS C:\> <example usage> Explanation of what the example does .INPUTS Inputs (if any) .OUTPUTS Output (if any) .NOTES General notes #> function New-UDSingleSelector { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [scriptblock]$Options, [Parameter()] [string]$PlaceHolder = "Select Items..." ) End { @{ # The AssetID of the main JS File assetId = $AssetId # Tell UD this is a plugin isPlugin = $true # This ID must be the same as the one used in the JavaScript to register the control with UD type = "UD-SingleSelector" # An ID is mandatory id = $Id # This is where you can put any other properties. They are passed to the React control's props # The keys are case-sensitive in JS. options = [array]$Options.invoke() placeholder = $PlaceHolder } } } function New-UDSelectorItem { [CmdletBinding(DefaultParameterSetName = "Default")] param( [Parameter( Mandatory = $true )] [string]$Value, [Parameter()] [string]$Label, [Parameter()] [string]$HexColor, [Parameter( ParameterSetName = "Disabled" )] [switch]$isDisabled ) Begin { $out = @{ }; } Process { if ($null -eq $Label) { $Label = $Value } $out.label = $Label $out.value = $Value if ($HexColor) { $out.color = $HexColor } if ($isDisabled) { $out.isDisabled = $true } } End { return $out } } |