sussudio
Version:
An unofficial VS Code Internal API
30 lines (29 loc) • 1.83 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 { IListVirtualDelegate } from "../list/list.mjs";
import { AbstractTree, AbstractTreeViewState, IAbstractTreeOptions } from "./abstractTree.mjs";
import { IList } from "./indexTreeModel.mjs";
import { ObjectTreeModel } from "./objectTreeModel.mjs";
import { IDataSource, ITreeModel, ITreeNode, ITreeRenderer, ITreeSorter } from "./tree.mjs";
export interface IDataTreeOptions<T, TFilterData = void> extends IAbstractTreeOptions<T, TFilterData> {
readonly sorter?: ITreeSorter<T>;
}
export declare class DataTree<TInput, T, TFilterData = void> extends AbstractTree<T | null, TFilterData, T | null> {
private user;
private dataSource;
protected model: ObjectTreeModel<T, TFilterData>;
private input;
private identityProvider;
private nodesByIdentity;
constructor(user: string, container: HTMLElement, delegate: IListVirtualDelegate<T>, renderers: ITreeRenderer<T, TFilterData, any>[], dataSource: IDataSource<TInput, T>, options?: IDataTreeOptions<T, TFilterData>);
getInput(): TInput | undefined;
setInput(input: TInput | undefined, viewState?: AbstractTreeViewState): void;
updateChildren(element?: TInput | T): void;
resort(element?: T | TInput, recursive?: boolean): void;
refresh(element?: T): void;
private _refresh;
private iterate;
protected createModel(user: string, view: IList<ITreeNode<T, TFilterData>>, options: IDataTreeOptions<T, TFilterData>): ITreeModel<T | null, TFilterData, T | null>;
}