UNPKG

sussudio

Version:

An unofficial VS Code Internal API

57 lines (56 loc) 3.47 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IIdentityProvider } from "../list/list.mjs"; import { IIndexTreeModelOptions, IIndexTreeModelSpliceOptions, IList } from "./indexTreeModel.mjs"; import { ICollapseStateChangeEvent, ITreeElement, ITreeModel, ITreeModelSpliceEvent, ITreeNode, ITreeSorter } from "./tree.mjs"; import { Event } from "../../../common/event.mjs"; export type ITreeNodeCallback<T, TFilterData> = (node: ITreeNode<T, TFilterData>) => void; export interface IObjectTreeModel<T extends NonNullable<any>, TFilterData extends NonNullable<any> = void> extends ITreeModel<T | null, TFilterData, T | null> { setChildren(element: T | null, children: Iterable<ITreeElement<T>> | undefined, options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; resort(element?: T | null, recursive?: boolean): void; updateElementHeight(element: T, height: number | undefined): void; } export interface IObjectTreeModelSetChildrenOptions<T, TFilterData> extends IIndexTreeModelSpliceOptions<T, TFilterData> { } export interface IObjectTreeModelOptions<T, TFilterData> extends IIndexTreeModelOptions<T, TFilterData> { readonly sorter?: ITreeSorter<T>; readonly identityProvider?: IIdentityProvider<T>; } export declare class ObjectTreeModel<T extends NonNullable<any>, TFilterData extends NonNullable<any> = void> implements IObjectTreeModel<T, TFilterData> { private user; readonly rootRef: null; private model; private nodes; private readonly nodesByIdentity; private readonly identityProvider?; private sorter?; readonly onDidSplice: Event<ITreeModelSpliceEvent<T | null, TFilterData>>; readonly onDidChangeCollapseState: Event<ICollapseStateChangeEvent<T, TFilterData>>; readonly onDidChangeRenderNodeCount: Event<ITreeNode<T, TFilterData>>; get size(): number; constructor(user: string, list: IList<ITreeNode<T, TFilterData>>, options?: IObjectTreeModelOptions<T, TFilterData>); setChildren(element: T | null, children?: Iterable<ITreeElement<T>>, options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; private _setChildren; private preserveCollapseState; rerender(element: T | null): void; updateElementHeight(element: T, height: number | undefined): void; resort(element?: T | null, recursive?: boolean): void; private resortChildren; getFirstElementChild(ref?: T | null): T | null | undefined; getLastElementAncestor(ref?: T | null): T | null | undefined; has(element: T | null): boolean; getListIndex(element: T | null): number; getListRenderCount(element: T | null): number; isCollapsible(element: T | null): boolean; setCollapsible(element: T | null, collapsible?: boolean): boolean; isCollapsed(element: T | null): boolean; setCollapsed(element: T | null, collapsed?: boolean, recursive?: boolean): boolean; expandTo(element: T | null): void; refilter(): void; getNode(element?: T | null): ITreeNode<T | null, TFilterData>; getNodeLocation(node: ITreeNode<T, TFilterData>): T | null; getParentNodeLocation(element: T | null): T | null; private getElementLocation; }