Scripts/New-UDCalendar.ps1
<#
.SYNOPSIS Calendar component. .DESCRIPTION Allows to show a calendar, with both "onClickDay" and "onChange" events. Also supports Get-UDElement, and the easy mode Get-UDCalElement which retuns a preformatted DateTime object. .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-UDCalendar { param( [Parameter()] [string]$Id = ([Guid]::NewGuid()), [Parameter()] [object]$OnClickDay, [Parameter()] [object]$OnChange, [Parameter()] [DateTime]$StartView = (Get-Date) ) End { $activeOnChange = "false" $activeOnClickDay = "false" if ($null -ne $OnChange) { if ($OnChange -is [scriptblock]) { $OnChange = New-UDEndpoint -Endpoint $OnChange -Id ($Id + "onChange") } elseif ($onChange -isnot [UniversalDashboard.Models.Endpoint]) { throw "OnChange must be a script block or UDEndpoint." } $activeOnChange = "true" } if ($null -ne $OnClickDay) { if ($OnClickDay -is [scriptblock]) { $OnClickDay = New-UDEndpoint -Endpoint $OnClickDay -Id ($Id + "onClickDay") } elseif ($OnClickDay -isnot [UniversalDashboard.Models.Endpoint]) { throw "OnClickDay must be a script block or UDEndpoint." } $activeOnClickDay = "true" } @{ # 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-calendar" # An ID is mandatory id = $Id activeOnChange = $activeOnChange $activeOnClickDay = $activeOnClickDay # 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. StartView = $StartView.GetDateTimeFormats("o") } } } |