UNPKG

sussudio

Version:

An unofficial VS Code Internal API

104 lines (103 loc) 4.48 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as dom from "../../../browser/dom.mjs"; import { IButtonStyles } from "../../../browser/ui/button/button.mjs"; import { ICountBadgeStyles } from "../../../browser/ui/countBadge/countBadge.mjs"; import { IInputBoxStyles } from "../../../browser/ui/inputbox/inputBox.mjs"; import { IKeybindingLabelStyles } from "../../../browser/ui/keybindingLabel/keybindingLabel.mjs"; import { IListRenderer, IListVirtualDelegate } from "../../../browser/ui/list/list.mjs"; import { IListOptions, IListStyles, List } from "../../../browser/ui/list/listWidget.mjs"; import { IProgressBarStyles } from "../../../browser/ui/progressbar/progressbar.mjs"; import { IToggleStyles } from "../../../browser/ui/toggle/toggle.mjs"; import { CancellationToken } from "../../../common/cancellation.mjs"; import { Color } from "../../../common/color.mjs"; import { Event } from "../../../common/event.mjs"; import { Disposable } from "../../../common/lifecycle.mjs"; import { IInputBox, IInputOptions, IKeyMods, IPickOptions, IQuickNavigateConfiguration, IQuickPick, IQuickPickItem, QuickInputHideReason, QuickPickInput } from "../common/quickInput.mjs"; import "../../../../css!./media/quickInput.mjs"; export interface IQuickInputOptions { idPrefix: string; container: HTMLElement; ignoreFocusOut(): boolean; isScreenReaderOptimized(): boolean; backKeybindingLabel(): string | undefined; setContextKey(id?: string): void; returnFocus(): void; createList<T>(user: string, container: HTMLElement, delegate: IListVirtualDelegate<T>, renderers: IListRenderer<T, any>[], options: IListOptions<T>): List<T>; styles: IQuickInputStyles; } export interface IQuickInputStyles { widget: IQuickInputWidgetStyles; inputBox: IInputBoxStyles; toggle: IToggleStyles; countBadge: ICountBadgeStyles; button: IButtonStyles; progressBar: IProgressBarStyles; keybindingLabel: IKeybindingLabelStyles; list: IListStyles & { pickerGroupBorder?: Color; pickerGroupForeground?: Color; }; } export interface IQuickInputWidgetStyles { quickInputBackground?: Color; quickInputForeground?: Color; quickInputTitleBackground?: Color; widgetBorder?: Color; widgetShadow?: Color; } export declare class QuickInputController extends Disposable { private options; private static readonly MAX_WIDTH; private idPrefix; private ui; private dimension?; private titleBarOffset?; private comboboxAccessibility; private enabled; private readonly onDidAcceptEmitter; private readonly onDidCustomEmitter; private readonly onDidTriggerButtonEmitter; private keyMods; private controller; private parentElement; private styles; private onShowEmitter; readonly onShow: Event<void>; private onHideEmitter; readonly onHide: Event<void>; private previousFocusElement?; constructor(options: IQuickInputOptions); private registerKeyModsListeners; private getUI; pick<T extends IQuickPickItem, O extends IPickOptions<T>>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[], options?: O, token?: CancellationToken): Promise<(O extends { canPickMany: true; } ? T[] : T) | undefined>; private setValidationOnInput; input(options?: IInputOptions, token?: CancellationToken): Promise<string | undefined>; backButton: { iconClass: string; tooltip: string; handle: number; }; createQuickPick<T extends IQuickPickItem>(): IQuickPick<T>; createInputBox(): IInputBox; private show; private setVisibilities; private setComboboxAccessibility; private setEnabled; hide(reason?: QuickInputHideReason): void; focus(): void; toggle(): void; navigate(next: boolean, quickNavigate?: IQuickNavigateConfiguration): void; accept(keyMods?: IKeyMods): Promise<void>; back(): Promise<void>; cancel(): Promise<void>; layout(dimension: dom.IDimension, titleBarOffset: number): void; private updateLayout; applyStyles(styles: IQuickInputStyles): void; private updateStyles; private isDisplayed; }