Scripts/New-UDButtonParticle.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-UDButtonParticle { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [string]$isLoading, [Parameter()] [string]$loaderType, [Parameter()] [Switch]$Disabled, [Parameter()] [object]$onClick, [Parameter()] [UniversalDashboard.Models.FontAwesomeIcons]$Icon, [Parameter()] [ValidateSet('left', 'right')] [String]$IconAlignment = 'left', [Parameter()] [string]$Color, [Parameter()] [String]$BackgroundColor, [Parameter (Position = 0)] [string]$Text, [Parameter()] [int]$Duration = 1000, [Parameter()] [ValidateSet("fill", "stroke")] [String]$Style = "fill", [Parameter()] [ValidateSet("left", "right", "top", "bottom")] [String]$Direction = "right", [Parameter()] [int]$Padding = 150, [Parameter()] [int]$Amount = 3, [Parameter()] [int]$Oscillation = 20 ) 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-ButtonParticle" # 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 color = $Color duration = $Duration direction = $Direction style = $Style canvasPadding = $Padding particlesAmountCoefficient = $Amount oscillationCoefficient = $Oscillation background = $BackgroundColor isLoading = $isLoading disabled = $Disabled.IsPresent loaderType = $loaderType } } |