UNPKG

sussudio

Version:

An unofficial VS Code Internal API

96 lines (95 loc) 5.99 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IList } from "./indexTreeModel.mjs"; import { IObjectTreeModel, IObjectTreeModelOptions, IObjectTreeModelSetChildrenOptions } from "./objectTreeModel.mjs"; import { ICollapseStateChangeEvent, ITreeElement, ITreeModel, ITreeModelSpliceEvent, ITreeNode } from "./tree.mjs"; import { Event } from "../../../common/event.mjs"; export interface ICompressedTreeElement<T> extends ITreeElement<T> { readonly children?: Iterable<ICompressedTreeElement<T>>; readonly incompressible?: boolean; } export interface ICompressedTreeNode<T> { readonly elements: T[]; readonly incompressible: boolean; } export declare function compress<T>(element: ICompressedTreeElement<T>): ITreeElement<ICompressedTreeNode<T>>; export declare function decompress<T>(element: ITreeElement<ICompressedTreeNode<T>>): ICompressedTreeElement<T>; interface ICompressedObjectTreeModelOptions<T, TFilterData> extends IObjectTreeModelOptions<ICompressedTreeNode<T>, TFilterData> { readonly compressionEnabled?: boolean; } export declare class CompressedObjectTreeModel<T extends NonNullable<any>, TFilterData extends NonNullable<any> = void> implements ITreeModel<ICompressedTreeNode<T> | null, TFilterData, T | null> { private user; readonly rootRef: null; get onDidSplice(): Event<ITreeModelSpliceEvent<ICompressedTreeNode<T> | null, TFilterData>>; get onDidChangeCollapseState(): Event<ICollapseStateChangeEvent<ICompressedTreeNode<T>, TFilterData>>; get onDidChangeRenderNodeCount(): Event<ITreeNode<ICompressedTreeNode<T>, TFilterData>>; private model; private nodes; private enabled; private readonly identityProvider?; get size(): number; constructor(user: string, list: IList<ITreeNode<ICompressedTreeNode<T>, TFilterData>>, options?: ICompressedObjectTreeModelOptions<T, TFilterData>); setChildren(element: T | null, children: Iterable<ICompressedTreeElement<T>> | undefined, options: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; isCompressionEnabled(): boolean; setCompressionEnabled(enabled: boolean): void; private _setChildren; has(element: T | null): boolean; getListIndex(location: T | null): number; getListRenderCount(location: T | null): number; getNode(location?: T | null | undefined): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; getNodeLocation(node: ITreeNode<ICompressedTreeNode<T>, TFilterData>): T | null; getParentNodeLocation(location: T | null): T | null; getFirstElementChild(location: T | null): ICompressedTreeNode<T> | null | undefined; getLastElementAncestor(location?: T | null | undefined): ICompressedTreeNode<T> | null | undefined; isCollapsible(location: T | null): boolean; setCollapsible(location: T | null, collapsible?: boolean): boolean; isCollapsed(location: T | null): boolean; setCollapsed(location: T | null, collapsed?: boolean | undefined, recursive?: boolean | undefined): boolean; expandTo(location: T | null): void; rerender(location: T | null): void; updateElementHeight(element: T, height: number): void; refilter(): void; resort(location?: T | null, recursive?: boolean): void; getCompressedNode(element: T | null): ICompressedTreeNode<T> | null; } export type ElementMapper<T> = (elements: T[]) => T; export declare const DefaultElementMapper: ElementMapper<any>; export type CompressedNodeUnwrapper<T> = (node: ICompressedTreeNode<T>) => T; export interface ICompressibleObjectTreeModelOptions<T, TFilterData> extends IObjectTreeModelOptions<T, TFilterData> { readonly compressionEnabled?: boolean; readonly elementMapper?: ElementMapper<T>; } export declare class CompressibleObjectTreeModel<T extends NonNullable<any>, TFilterData extends NonNullable<any> = void> implements IObjectTreeModel<T, TFilterData> { readonly rootRef: null; get onDidSplice(): Event<ITreeModelSpliceEvent<T | null, TFilterData>>; get onDidChangeCollapseState(): Event<ICollapseStateChangeEvent<T | null, TFilterData>>; get onDidChangeRenderNodeCount(): Event<ITreeNode<T | null, TFilterData>>; private elementMapper; private nodeMapper; private model; constructor(user: string, list: IList<ITreeNode<T, TFilterData>>, options?: ICompressibleObjectTreeModelOptions<T, TFilterData>); setChildren(element: T | null, children?: Iterable<ICompressedTreeElement<T>>, options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; isCompressionEnabled(): boolean; setCompressionEnabled(enabled: boolean): void; has(location: T | null): boolean; getListIndex(location: T | null): number; getListRenderCount(location: T | null): number; getNode(location?: T | null | undefined): ITreeNode<T | null, any>; getNodeLocation(node: ITreeNode<T | null, any>): T | null; getParentNodeLocation(location: T | null): T | null; getFirstElementChild(location: T | null): T | null | undefined; getLastElementAncestor(location?: T | null | undefined): T | null | undefined; isCollapsible(location: T | null): boolean; setCollapsible(location: T | null, collapsed?: boolean): boolean; isCollapsed(location: T | null): boolean; setCollapsed(location: T | null, collapsed?: boolean | undefined, recursive?: boolean | undefined): boolean; expandTo(location: T | null): void; rerender(location: T | null): void; updateElementHeight(element: T, height: number): void; refilter(): void; resort(element?: T | null, recursive?: boolean): void; getCompressedTreeNode(location?: T | null): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; } export {};