Scripts/New-UDBadgeButton.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-UDBadgeButton { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [ValidateSet("bouncing-ball", "spinner", "jiggling-lines")] [string]$LoaderType, [Parameter()] [Switch]$Disabled, [Parameter()] [object]$onClick, [Parameter()] [UniversalDashboard.Models.FontAwesomeIcons]$Icon, [Parameter()] [ValidateSet('left', 'right')] [String]$IconAlignment = 'left', [Parameter()] [String]$BackgroundColor, [Parameter()] [string]$Text, [Parameter()] [int]$BadgeCount, [Parameter()] [string]$BadgeColor, [Parameter()] [string]$BadgeTextColor, [Parameter()] [int]$MaxNumber = 999 ) if ($null -ne $OnClick) { if ($OnClick -is [scriptblock]) { $OnClick = New-UDEndpoint -Endpoint $OnClick -Id ($Id + "onClick") } elseif ($OnClick -isnot [UniversalDashboard.Models.Endpoint]) { throw "OnClick must be a script block or UDEndpoint" } } if ($PSBoundParameters.ContainsKey("Icon")) { $IconName = [UniversalDashboard.Models.FontAwesomeIconsExtensions]::GetIconName($Icon) } @{ # 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-BadgeButton" # 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. text = $Text icon = $IconName iconAlignment = $IconAlignment onClick = $onClick.Name background = $BackgroundColor disabled = $Disabled.IsPresent loaderType = $loaderType count = $BadgeCount badgeTextColor = $BadgeTextColor badgeColor = $BadgeColor max = $MaxNumber } } |