sussudio
Version:
An unofficial VS Code Internal API
81 lines (80 loc) • 3.71 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 { Event } from "../../../common/event.mjs";
import { IDisposable } from "../../../common/lifecycle.mjs";
import { IPagedModel } from "../../../common/paging.mjs";
import { ScrollbarVisibility } from "../../../common/scrollable.mjs";
import { IThemable } from "../../../common/styler.mjs";
import "../../../../css!./list.mjs";
import { IListContextMenuEvent, IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from './list';
import { IListAccessibilityProvider, IListOptionsUpdate, IListStyles, List, TypeNavigationMode } from './listWidget';
export interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {
renderPlaceholder(index: number, templateData: TTemplateData): void;
}
export interface ITemplateData<T> {
data?: T;
disposable?: IDisposable;
}
export interface IPagedListOptions<T> {
readonly typeNavigationEnabled?: boolean;
readonly typeNavigationMode?: TypeNavigationMode;
readonly ariaLabel?: string;
readonly keyboardSupport?: boolean;
readonly multipleSelectionSupport?: boolean;
readonly accessibilityProvider?: IListAccessibilityProvider<T>;
readonly useShadows?: boolean;
readonly verticalScrollMode?: ScrollbarVisibility;
readonly setRowLineHeight?: boolean;
readonly setRowHeight?: boolean;
readonly supportDynamicHeights?: boolean;
readonly mouseSupport?: boolean;
readonly horizontalScrolling?: boolean;
readonly additionalScrollHeight?: number;
}
export declare class PagedList<T> implements IThemable, IDisposable {
private list;
private _model;
constructor(user: string, container: HTMLElement, virtualDelegate: IListVirtualDelegate<number>, renderers: IPagedRenderer<T, any>[], options?: IPagedListOptions<T>);
updateOptions(options: IListOptionsUpdate): void;
getHTMLElement(): HTMLElement;
isDOMFocused(): boolean;
domFocus(): void;
get onDidFocus(): Event<void>;
get onDidBlur(): Event<void>;
get widget(): List<number>;
get onDidDispose(): Event<void>;
get onMouseClick(): Event<IListMouseEvent<T>>;
get onMouseDblClick(): Event<IListMouseEvent<T>>;
get onTap(): Event<IListMouseEvent<T>>;
get onPointer(): Event<IListMouseEvent<T>>;
get onDidChangeFocus(): Event<IListEvent<T>>;
get onDidChangeSelection(): Event<IListEvent<T>>;
get onContextMenu(): Event<IListContextMenuEvent<T>>;
get model(): IPagedModel<T>;
set model(model: IPagedModel<T>);
get length(): number;
get scrollTop(): number;
set scrollTop(scrollTop: number);
get scrollLeft(): number;
set scrollLeft(scrollLeft: number);
setAnchor(index: number | undefined): void;
getAnchor(): number | undefined;
setFocus(indexes: number[]): void;
focusNext(n?: number, loop?: boolean): void;
focusPrevious(n?: number, loop?: boolean): void;
focusNextPage(): Promise<void>;
focusPreviousPage(): Promise<void>;
focusLast(): void;
focusFirst(): void;
getFocus(): number[];
setSelection(indexes: number[], browserEvent?: UIEvent): void;
getSelection(): number[];
getSelectedElements(): T[];
layout(height?: number, width?: number): void;
triggerTypeNavigation(): void;
reveal(index: number, relativeTop?: number): void;
style(styles: IListStyles): void;
dispose(): void;
}