import * as i0 from '@angular/core'; import { OnChanges, OnInit, OnDestroy, EventEmitter, ElementRef } from '@angular/core'; import { FlatTreeControl } from '@angular/cdk/tree'; import * as i8 from '@angular/material/tree'; import { MatTreeFlattener, MatTreeFlatDataSource } from '@angular/material/tree'; import * as i3 from '@angular/cdk/drag-drop'; import { CdkDragMove, CdkDragStart, CdkDragDrop } from '@angular/cdk/drag-drop'; import { SelectionModel } from '@angular/cdk/collections'; import * as i2 from '@angular/common'; import * as i4 from '@angular/material/button'; import * as i5 from '@angular/material/icon'; import * as i6 from '@angular/material/menu'; import * as i7 from '@angular/material/tooltip'; interface BrieTreeSubMenuItem { id: string; title: string; } interface BrieTreeDefaultConfig { draggable?: boolean; subMenu?: BrieTreeSubMenuItem[]; actions?: BrieTreeAction[]; expandAll?: boolean; dragAboveRoot?: boolean; } interface BrieTreeConfig { defaults: BrieTreeDefaultConfig; } interface BrieTreeNode extends BrieTreeDefaultConfig { id?: string; title: string; subTitle?: string; children?: BrieTreeNode[]; data?: T; } interface BrieTreeAction { id: string; icon: { name: string; fontSet?: string; }; tooltip?: string; } interface BrieTreeNodeClick { event: MouseEvent; treeNode: BrieTreeNode; } interface BrieTreeSubMenuClick extends BrieTreeNodeClick { subMenuItem: BrieTreeSubMenuItem; } interface BrieTreeActionClick extends BrieTreeNodeClick { actionItem: BrieTreeAction; } interface BrieTreeFlatNode { expandable: boolean; title: string; subTitle: string; level: number; subMenu: BrieTreeSubMenuItem[]; id: string; draggable: boolean; actions: BrieTreeAction[]; } interface BrieTreeUpdated { event: BrieTreeNodeEvent; nodes: BrieTreeNode[]; } declare enum BrieTreeNodeEvent { MOVED = "MOVED", ADDED = "ADDED", EDITED = "EDITED", DELETED = "DELETED", PASTED = "PASTED" } declare class BrieTreeComponent implements OnChanges, OnInit, OnDestroy { private document; dataSource: BrieTreeNode[]; config: BrieTreeConfig; selectedNode: BrieTreeNode | null; clickedSubMenu: EventEmitter; clickedAction: EventEmitter; clickedNode: EventEmitter; treeUpdated: EventEmitter; treeElRef: ElementRef; dropActionTodo: { targetId: string | null; action?: string; } | null; dragOverNode: BrieTreeFlatNode; dragOverArea: string; rootId: string | undefined; flatNodeMap: Map>; brieTreeNodeMap: Map; draggedNodeExpanded: boolean; processDragging: boolean; treeControl: FlatTreeControl; treeFlattener: MatTreeFlattener; flatDataSource: MatTreeFlatDataSource; expansionModel: SelectionModel; private subject; private readonly unsubscribe; constructor(document: Document); generateId(node: BrieTreeNode): void; ngOnInit(): void; ngOnDestroy(): void; onDragMove(event: CdkDragMove): void; ngOnChanges(): void; isDraggable(overrideValue: boolean | undefined): boolean; private _transformer; onDragIconClick(event: MouseEvent): void; onMenuIconClick(event: MouseEvent): void; addNewNode(parent: BrieTreeNode, node: BrieTreeNode): void; editNode(node: BrieTreeNode): void; deleteNode(node: BrieTreeNode): void; pasteNode(parent: BrieTreeNode, node: BrieTreeNode): void; hasChild(_: number, node: BrieTreeFlatNode): boolean; onNodeClick(event: MouseEvent, node: BrieTreeFlatNode): void; onMenuItemClick(event: MouseEvent, node: BrieTreeFlatNode, subMenuItem: BrieTreeSubMenuItem): void; onActionItemClick(event: MouseEvent, node: BrieTreeFlatNode, actionItem: BrieTreeAction): void; dragMoved(event: CdkDragMove): void; dragStarted(event: CdkDragStart): void; processDrop(draggedNodeId: string): void; getParentNodeId(id: string, nodes: BrieTreeNode[], parentId: string): string; clearDragInfo(dropped?: boolean): void; showDragInfo(event: CdkDragMove, draggedNode: BrieTreeFlatNode): void; drop(event: CdkDragDrop): void; rebuildTreeForData(data: BrieTreeNode[]): void; getUniqueId(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class BrieTreeModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { BrieTreeComponent, BrieTreeModule, BrieTreeNodeEvent }; export type { BrieTreeAction, BrieTreeActionClick, BrieTreeConfig, BrieTreeDefaultConfig, BrieTreeFlatNode, BrieTreeNode, BrieTreeNodeClick, BrieTreeSubMenuClick, BrieTreeSubMenuItem, BrieTreeUpdated };