Scripts/New-UDDatePicker.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:\> New-UDDatePicker -Id "DatePicker"
    Places the UD date picker on the screen with an ID of DatePicker so you can reference the values from this component
.INPUTS
    Inputs (if any)
.OUTPUTS
    Output (if any)
.NOTES
    General notes
#>

function New-UDDatePicker {
    param(
        [Parameter()]
        [string]$Id = (New-Guid).ToString()
        # [Parameter()]
        # [object]$OnChange,
        # [Parameter()]
        # [object]$OnDayClick
    )
    End {
        $activeOnChange = "false"
        $activeOnDayClick = "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 $OnDayClick) {
            if ($OnDayClick -is [scriptblock]) {
                $OnDayClick = New-UDEndpoint -Endpoint $OnDayClick -Id ($Id + "onDayClick")
            }
            elseif ($OnDayClick -isnot [UniversalDashboard.Models.Endpoint]) {
                throw "OnDayClick must be a script block or UDEndpoint."
            }
            $activeOnDayClick = "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-DatePicker"
            # An ID is mandatory
            id               = $Id
            activeOnChange   = $activeOnChange
            activeOnDayClick = $activeOnDayClick
            # 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.
            ###
        }
    }

}