sussudio
Version:
An unofficial VS Code Internal API
104 lines (103 loc) • 4.48 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* 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;
}