-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e97da66
commit 78c24ad
Showing
1,866 changed files
with
120,897 additions
and
82,316 deletions.
There are no files selected for viewing
190 changes: 136 additions & 54 deletions
190
Target/CodeEditorLand/Editor/vs/base/browser/ui/tree/objectTree.d.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,148 @@ | ||
import { IIdentityProvider, IKeyboardNavigationLabelProvider, IListVirtualDelegate } from '../list/list.js'; | ||
import { AbstractTree, IAbstractTreeOptions, IAbstractTreeOptionsUpdate } from './abstractTree.js'; | ||
import { CompressibleObjectTreeModel, ElementMapper, ICompressedTreeElement, ICompressedTreeNode } from './compressedObjectTreeModel.js'; | ||
import { IObjectTreeModel } from './objectTreeModel.js'; | ||
import { ICollapseStateChangeEvent, IObjectTreeElement, ITreeModel, ITreeNode, ITreeRenderer, ITreeSorter } from './tree.js'; | ||
import { Event } from '../../../common/event.js'; | ||
export interface IObjectTreeOptions<T, TFilterData = void> extends IAbstractTreeOptions<T, TFilterData> { | ||
readonly sorter?: ITreeSorter<T>; | ||
import { Event } from "../../../common/event.js"; | ||
import { | ||
IIdentityProvider, | ||
IKeyboardNavigationLabelProvider, | ||
IListVirtualDelegate, | ||
} from "../list/list.js"; | ||
import { | ||
AbstractTree, | ||
IAbstractTreeOptions, | ||
IAbstractTreeOptionsUpdate, | ||
} from "./abstractTree.js"; | ||
import { | ||
CompressibleObjectTreeModel, | ||
ElementMapper, | ||
ICompressedTreeElement, | ||
ICompressedTreeNode, | ||
} from "./compressedObjectTreeModel.js"; | ||
import { IObjectTreeModel } from "./objectTreeModel.js"; | ||
import { | ||
ICollapseStateChangeEvent, | ||
IObjectTreeElement, | ||
ITreeModel, | ||
ITreeNode, | ||
ITreeRenderer, | ||
ITreeSorter, | ||
} from "./tree.js"; | ||
|
||
export interface IObjectTreeOptions<T, TFilterData = void> | ||
extends IAbstractTreeOptions<T, TFilterData> { | ||
readonly sorter?: ITreeSorter<T>; | ||
} | ||
export interface IObjectTreeSetChildrenOptions<T> { | ||
/** | ||
* If set, child updates will recurse the given number of levels even if | ||
* items in the splice operation are unchanged. `Infinity` is a valid value. | ||
*/ | ||
readonly diffDepth?: number; | ||
/** | ||
* Identity provider used to optimize splice() calls in the IndexTree. If | ||
* this is not present, optimized splicing is not enabled. | ||
* | ||
* Warning: if this is present, calls to `setChildren()` will not replace | ||
* or update nodes if their identity is the same, even if the elements are | ||
* different. For this, you should call `rerender()`. | ||
*/ | ||
readonly diffIdentityProvider?: IIdentityProvider<T>; | ||
/** | ||
* If set, child updates will recurse the given number of levels even if | ||
* items in the splice operation are unchanged. `Infinity` is a valid value. | ||
*/ | ||
readonly diffDepth?: number; | ||
/** | ||
* Identity provider used to optimize splice() calls in the IndexTree. If | ||
* this is not present, optimized splicing is not enabled. | ||
* | ||
* Warning: if this is present, calls to `setChildren()` will not replace | ||
* or update nodes if their identity is the same, even if the elements are | ||
* different. For this, you should call `rerender()`. | ||
*/ | ||
readonly diffIdentityProvider?: IIdentityProvider<T>; | ||
} | ||
export declare class ObjectTree<T extends NonNullable<any>, TFilterData = void> extends AbstractTree<T | null, TFilterData, T | null> { | ||
protected readonly user: string; | ||
protected model: IObjectTreeModel<T, TFilterData>; | ||
get onDidChangeCollapseState(): Event<ICollapseStateChangeEvent<T | null, TFilterData>>; | ||
constructor(user: string, container: HTMLElement, delegate: IListVirtualDelegate<T>, renderers: ITreeRenderer<T, TFilterData, any>[], options?: IObjectTreeOptions<T, TFilterData>); | ||
setChildren(element: T | null, children?: Iterable<IObjectTreeElement<T>>, options?: IObjectTreeSetChildrenOptions<T>): void; | ||
rerender(element?: T): void; | ||
updateElementHeight(element: T, height: number | undefined): void; | ||
resort(element: T | null, recursive?: boolean): void; | ||
hasElement(element: T): boolean; | ||
protected createModel(user: string, options: IObjectTreeOptions<T, TFilterData>): ITreeModel<T | null, TFilterData, T | null>; | ||
export declare class ObjectTree< | ||
T extends NonNullable<any>, | ||
TFilterData = void, | ||
> extends AbstractTree<T | null, TFilterData, T | null> { | ||
protected readonly user: string; | ||
protected model: IObjectTreeModel<T, TFilterData>; | ||
get onDidChangeCollapseState(): Event< | ||
ICollapseStateChangeEvent<T | null, TFilterData> | ||
>; | ||
constructor( | ||
user: string, | ||
container: HTMLElement, | ||
delegate: IListVirtualDelegate<T>, | ||
renderers: ITreeRenderer<T, TFilterData, any>[], | ||
options?: IObjectTreeOptions<T, TFilterData>, | ||
); | ||
setChildren( | ||
element: T | null, | ||
children?: Iterable<IObjectTreeElement<T>>, | ||
options?: IObjectTreeSetChildrenOptions<T>, | ||
): void; | ||
rerender(element?: T): void; | ||
updateElementHeight(element: T, height: number | undefined): void; | ||
resort(element: T | null, recursive?: boolean): void; | ||
hasElement(element: T): boolean; | ||
protected createModel( | ||
user: string, | ||
options: IObjectTreeOptions<T, TFilterData>, | ||
): ITreeModel<T | null, TFilterData, T | null>; | ||
} | ||
interface ICompressedTreeNodeProvider<T, TFilterData> { | ||
getCompressedTreeNode(location: T | null): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; | ||
getCompressedTreeNode( | ||
location: T | null, | ||
): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; | ||
} | ||
export interface ICompressibleTreeRenderer<T, TFilterData = void, TTemplateData = void> extends ITreeRenderer<T, TFilterData, TTemplateData> { | ||
renderCompressedElements(node: ITreeNode<ICompressedTreeNode<T>, TFilterData>, index: number, templateData: TTemplateData, height: number | undefined): void; | ||
disposeCompressedElements?(node: ITreeNode<ICompressedTreeNode<T>, TFilterData>, index: number, templateData: TTemplateData, height: number | undefined): void; | ||
export interface ICompressibleTreeRenderer< | ||
T, | ||
TFilterData = void, | ||
TTemplateData = void, | ||
> extends ITreeRenderer<T, TFilterData, TTemplateData> { | ||
renderCompressedElements( | ||
node: ITreeNode<ICompressedTreeNode<T>, TFilterData>, | ||
index: number, | ||
templateData: TTemplateData, | ||
height: number | undefined, | ||
): void; | ||
disposeCompressedElements?( | ||
node: ITreeNode<ICompressedTreeNode<T>, TFilterData>, | ||
index: number, | ||
templateData: TTemplateData, | ||
height: number | undefined, | ||
): void; | ||
} | ||
export interface ICompressibleKeyboardNavigationLabelProvider<T> extends IKeyboardNavigationLabelProvider<T> { | ||
getCompressedNodeKeyboardNavigationLabel(elements: T[]): { | ||
toString(): string | undefined; | ||
} | undefined; | ||
export interface ICompressibleKeyboardNavigationLabelProvider<T> | ||
extends IKeyboardNavigationLabelProvider<T> { | ||
getCompressedNodeKeyboardNavigationLabel(elements: T[]): | ||
| { | ||
toString(): string | undefined; | ||
} | ||
| undefined; | ||
} | ||
export interface ICompressibleObjectTreeOptions<T, TFilterData = void> extends IObjectTreeOptions<T, TFilterData> { | ||
readonly compressionEnabled?: boolean; | ||
readonly elementMapper?: ElementMapper<T>; | ||
readonly keyboardNavigationLabelProvider?: ICompressibleKeyboardNavigationLabelProvider<T>; | ||
export interface ICompressibleObjectTreeOptions<T, TFilterData = void> | ||
extends IObjectTreeOptions<T, TFilterData> { | ||
readonly compressionEnabled?: boolean; | ||
readonly elementMapper?: ElementMapper<T>; | ||
readonly keyboardNavigationLabelProvider?: ICompressibleKeyboardNavigationLabelProvider<T>; | ||
} | ||
export interface ICompressibleObjectTreeOptionsUpdate extends IAbstractTreeOptionsUpdate { | ||
readonly compressionEnabled?: boolean; | ||
export interface ICompressibleObjectTreeOptionsUpdate | ||
extends IAbstractTreeOptionsUpdate { | ||
readonly compressionEnabled?: boolean; | ||
} | ||
export declare class CompressibleObjectTree<T extends NonNullable<any>, TFilterData = void> extends ObjectTree<T, TFilterData> implements ICompressedTreeNodeProvider<T, TFilterData> { | ||
protected model: CompressibleObjectTreeModel<T, TFilterData>; | ||
constructor(user: string, container: HTMLElement, delegate: IListVirtualDelegate<T>, renderers: ICompressibleTreeRenderer<T, TFilterData, any>[], options?: ICompressibleObjectTreeOptions<T, TFilterData>); | ||
setChildren(element: T | null, children?: Iterable<ICompressedTreeElement<T>>, options?: IObjectTreeSetChildrenOptions<T>): void; | ||
protected createModel(user: string, options: ICompressibleObjectTreeOptions<T, TFilterData>): ITreeModel<T | null, TFilterData, T | null>; | ||
updateOptions(optionsUpdate?: ICompressibleObjectTreeOptionsUpdate): void; | ||
getCompressedTreeNode(element?: T | null): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; | ||
export declare class CompressibleObjectTree< | ||
T extends NonNullable<any>, | ||
TFilterData = void, | ||
> | ||
extends ObjectTree<T, TFilterData> | ||
implements ICompressedTreeNodeProvider<T, TFilterData> | ||
{ | ||
protected model: CompressibleObjectTreeModel<T, TFilterData>; | ||
constructor( | ||
user: string, | ||
container: HTMLElement, | ||
delegate: IListVirtualDelegate<T>, | ||
renderers: ICompressibleTreeRenderer<T, TFilterData, any>[], | ||
options?: ICompressibleObjectTreeOptions<T, TFilterData>, | ||
); | ||
setChildren( | ||
element: T | null, | ||
children?: Iterable<ICompressedTreeElement<T>>, | ||
options?: IObjectTreeSetChildrenOptions<T>, | ||
): void; | ||
protected createModel( | ||
user: string, | ||
options: ICompressibleObjectTreeOptions<T, TFilterData>, | ||
): ITreeModel<T | null, TFilterData, T | null>; | ||
updateOptions(optionsUpdate?: ICompressibleObjectTreeOptionsUpdate): void; | ||
getCompressedTreeNode( | ||
element?: T | null, | ||
): ITreeNode<ICompressedTreeNode<T> | null, TFilterData>; | ||
} | ||
export {}; |
139 changes: 91 additions & 48 deletions
139
Target/CodeEditorLand/Editor/vs/base/browser/ui/tree/objectTreeModel.d.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,51 +1,94 @@ | ||
import { IIdentityProvider } from '../list/list.js'; | ||
import { IIndexTreeModelOptions, IIndexTreeModelSpliceOptions } from './indexTreeModel.js'; | ||
import { ICollapseStateChangeEvent, IObjectTreeElement, ITreeListSpliceData, ITreeModel, ITreeModelSpliceEvent, ITreeNode, ITreeSorter } from './tree.js'; | ||
import { Event } from '../../../common/event.js'; | ||
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<IObjectTreeElement<T>> | undefined, options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; | ||
resort(element?: T | null, recursive?: boolean): void; | ||
import { Event } from "../../../common/event.js"; | ||
import { IIdentityProvider } from "../list/list.js"; | ||
import { | ||
IIndexTreeModelOptions, | ||
IIndexTreeModelSpliceOptions, | ||
} from "./indexTreeModel.js"; | ||
import { | ||
ICollapseStateChangeEvent, | ||
IObjectTreeElement, | ||
ITreeListSpliceData, | ||
ITreeModel, | ||
ITreeModelSpliceEvent, | ||
ITreeNode, | ||
ITreeSorter, | ||
} from "./tree.js"; | ||
|
||
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<IObjectTreeElement<T>> | undefined, | ||
options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>, | ||
): void; | ||
resort(element?: T | null, recursive?: boolean): void; | ||
} | ||
export interface IObjectTreeModelSetChildrenOptions<T, TFilterData> extends IIndexTreeModelSpliceOptions<T, TFilterData> { | ||
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 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 onDidSpliceModel: Event<ITreeModelSpliceEvent<T | null, TFilterData>>; | ||
readonly onDidSpliceRenderedNodes: Event<ITreeListSpliceData<T | null, TFilterData>>; | ||
readonly onDidChangeCollapseState: Event<ICollapseStateChangeEvent<T, TFilterData>>; | ||
readonly onDidChangeRenderNodeCount: Event<ITreeNode<T, TFilterData>>; | ||
get size(): number; | ||
constructor(user: string, options?: IObjectTreeModelOptions<T, TFilterData>); | ||
setChildren(element: T | null, children?: Iterable<IObjectTreeElement<T>>, options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>): void; | ||
private _setChildren; | ||
private preserveCollapseState; | ||
rerender(element: T | null): 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; | ||
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 onDidSpliceModel: Event< | ||
ITreeModelSpliceEvent<T | null, TFilterData> | ||
>; | ||
readonly onDidSpliceRenderedNodes: Event< | ||
ITreeListSpliceData<T | null, TFilterData> | ||
>; | ||
readonly onDidChangeCollapseState: Event< | ||
ICollapseStateChangeEvent<T, TFilterData> | ||
>; | ||
readonly onDidChangeRenderNodeCount: Event<ITreeNode<T, TFilterData>>; | ||
get size(): number; | ||
constructor( | ||
user: string, | ||
options?: IObjectTreeModelOptions<T, TFilterData>, | ||
); | ||
setChildren( | ||
element: T | null, | ||
children?: Iterable<IObjectTreeElement<T>>, | ||
options?: IObjectTreeModelSetChildrenOptions<T, TFilterData>, | ||
): void; | ||
private _setChildren; | ||
private preserveCollapseState; | ||
rerender(element: T | null): 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; | ||
} |
Oops, something went wrong.