Scripts/New-UDSelectDateTime.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-UDSelectDateTime { param( [Parameter()] [string]$Id = (New-Guid).ToString(), [Parameter()] [DateTime]$StartDate = (Get-Date -Format F), [Parameter()] [int]$TimeIntervals = 10, [Parameter()] [object]$OnChange, [Parameter()] [string]$Locale = "enGB", [Parameter()] [bool]$ModalView = $false, [Parameter()] [bool]$Clearable = $true, [Parameter()] [bool]$WeekNumbers = $true, [Parameter()] [bool]$showPreviousMonths = $false, [Parameter()] [int]$monthsShown = 1, [Parameter()] [bool]$showTimeSelect = $true, [Parameter()] [string]$timeFormat = "HH:mm", [Parameter()] [string]$dateFormat = "dd-MM-yyyy", [Parameter()] [string]$Placeholder = "Select a date and time", [Parameter()] [bool]$CloseOnSelect = $false, [Parameter()] [string]$DateFormatCalendar = "MMM yyyy", [Parameter()] [bool]$showPopperArrow = $true, [Parameter()] [bool]$showYearDropdown = $false, [Parameter()] [bool]$showMonthDropdown = $false, [Parameter()] [bool]$startOpen = $false, [Parameter()] [bool]$fixedHeight = $false, [Parameter()] [bool]$inline = $false ) End { 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" } @{ # 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-SelectDateTime" # 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. BeginDate = $StartDate #.GetDateTimeFormats("o") timeIntervals = $TimeIntervals onChange = $activeOnChange locale = $Locale withPortal = $ModalView isClearable = $Clearable showWeekNumbers = $WeekNumbers monthsShown = $monthsShown showPreviousMonths = $showPreviousMonths showTimeSelect = $showTimeSelect timeFormat = $timeFormat dateFormat = $dateFormat placeholderText = $Placeholder shouldCloseOnSelect = $CloseOnSelect dateFormatCalendar = $DateFormatCalendar showPopperArrow = $showPopperArrow showYearDropdown = $showYearDropdown showMonthDropdown = $showMonthDropdown startOpen = $startOpen fixedHeight =$fixedHeight inline = $inline } } } |