UNPKG

sussudio

Version:

An unofficial VS Code Internal API

74 lines (73 loc) 2.87 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IContentActionHandler } from "../../formattedTextRenderer.mjs"; import { IContextViewProvider } from "../contextview/contextview.mjs"; import { IListStyles } from "../list/listWidget.mjs"; import { Widget } from "../widget.mjs"; import { Color } from "../../../common/color.mjs"; import { Event } from "../../../common/event.mjs"; import { IDisposable } from "../../../common/lifecycle.mjs"; import { IThemable } from "../../../common/styler.mjs"; import "../../../../css!./selectBox.mjs"; export interface ISelectBoxDelegate extends IDisposable { readonly onDidSelect: Event<ISelectData>; setOptions(options: ISelectOptionItem[], selected?: number): void; select(index: number): void; setAriaLabel(label: string): void; focus(): void; blur(): void; setFocusable(focus: boolean): void; render(container: HTMLElement): void; style(styles: ISelectBoxStyles): void; applyStyles(): void; } export interface ISelectBoxOptions { useCustomDrawn?: boolean; ariaLabel?: string; ariaDescription?: string; minBottomMargin?: number; optionsAsChildren?: boolean; } export interface ISelectOptionItem { text: string; detail?: string; decoratorRight?: string; description?: string; descriptionIsMarkdown?: boolean; descriptionMarkdownActionHandler?: IContentActionHandler; isDisabled?: boolean; } export interface ISelectBoxStyles extends IListStyles { selectBackground?: Color; selectListBackground?: Color; selectForeground?: Color; decoratorRightForeground?: Color; selectBorder?: Color; selectListBorder?: Color; focusBorder?: Color; } export declare const defaultStyles: { selectBackground: Color; selectForeground: Color; selectBorder: Color; }; export interface ISelectData { selected: string; index: number; } export declare class SelectBox extends Widget implements ISelectBoxDelegate, IThemable { private selectBoxDelegate; constructor(options: ISelectOptionItem[], selected: number, contextViewProvider: IContextViewProvider, styles?: ISelectBoxStyles, selectBoxOptions?: ISelectBoxOptions); get onDidSelect(): Event<ISelectData>; setOptions(options: ISelectOptionItem[], selected?: number): void; select(index: number): void; setAriaLabel(label: string): void; focus(): void; blur(): void; setFocusable(focusable: boolean): void; render(container: HTMLElement): void; style(styles: ISelectBoxStyles): void; applyStyles(): void; }