Public/Invoke-PSRunSelectorCustom.ps1

function Invoke-PSRunSelectorCustom {
    [CmdletBinding()]
    [OutputType([PowerShellRun.SelectorResult])]
    param (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [PowerShellRun.SelectorEntry[]]$Entry,

        [Switch]$MultiSelection,

        [PowerShellRun.SelectorOption]$Option = $script:globalStore.defaultSelectorOption,

        [PowerShellRun.SelectorContext]$Context
    )

    begin {
        $isPipelineInput = $MyInvocation.ExpectingInput
        if ($isPipelineInput) {
            $entries = [System.Collections.Generic.List[PowerShellRun.SelectorEntry]]::new()
        }
    }
    process {
        if ($isPipelineInput) {
            $entries.Add($Entry[0])
        }
    }
    end {
        $mode = if ($MultiSelection) { [PowerShellRun.SelectorMode]::MultiSelection } else { [PowerShellRun.SelectorMode]::SingleSelection }
        if ($isPipelineInput) {
            $result = [PowerShellRun.Selector]::Open($entries, $mode, $Option, $Context)
        } else {
            $result = [PowerShellRun.Selector]::Open($Entry, $mode, $Option, $Context)
        }
        $result
    }
}