Scripts/New-UDNavbarSearch.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-UDNavbarSearch { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [string]$Placeholder, [Parameter()] [string]$SearchText, [Parameter()] [ScriptBlock]$onChange, [Parameter()] [ScriptBlock]$onEnter, [Parameter()] [string]$ClassNameFilter = "card-content", [Parameter()] [int]$Delay = 5000 ) End { if ($null -ne $onChange) { $OnChangeEndpoint = New-UDEndpoint -Endpoint $onChange -Id ($Id + 'onChange') } if ($null -ne $onEnter) { $OnEnterEndpoint = New-UDEndpoint -Endpoint $onEnter -Id ($Id + 'onEnter') } if ([String]::IsNullOrWhiteSpace($Placeholder)) { $Placeholder = 'Search...' } @{ # 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-NavbarSearch" # 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. placeholder = $Placeholder searchText = $SearchText onChange = $OnChangeEndpoint.Name onEnter = $OnEnterEndpoint.Name getElementsByClassName = $ClassNameFilter delay = $Delay } } } |