@bimeister/pupakit.tree
Version:
PupaKit Tree
35 lines (34 loc) • 1.7 kB
TypeScript
import { ElementRef, Renderer2 } from '@angular/core';
import { Nullable } from '@bimeister/utilities';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { DropEventInterface } from '../interfaces/drop-event.interface';
import { FlatTreeItem } from './flat-tree-item.class';
import * as i0 from "@angular/core";
export declare class TreeDragAndDropControl {
readonly draggingHasStarted$: BehaviorSubject<boolean>;
readonly droppedSubject$: Subject<DropEventInterface<FlatTreeItem>>;
readonly draggableNode$: BehaviorSubject<Nullable<FlatTreeItem>>;
readonly scrollDirection$: BehaviorSubject<Nullable<'up' | 'down'>>;
readonly expandNodeWithDelay$: Subject<FlatTreeItem | null>;
private readonly hasDragAndDrop$;
private dropNode;
private mouseDownPosition;
private draggableElementBoundingBox;
private draggableExpandableDescendants;
private renderer;
private host;
setHostAndRenderer(host: ElementRef<HTMLElement>, renderer: Renderer2): void;
setHasDragAndDrop(hasDragAndDrop: boolean): void;
mouseDown(treeNode: FlatTreeItem, event: MouseEvent): void;
mouseMove({ screenX, screenY }: MouseEvent, draggableElement: ElementRef<HTMLElement>, data$: Observable<FlatTreeItem[]>): void;
mouseUp(): void;
mouseEnter(node: FlatTreeItem): void;
canDrop(node: FlatTreeItem): boolean;
mouseLeave(): void;
private startDragging;
private setupWidthForDraggableElement;
private setupDraggableExpandableDescendants;
private updateDraggablePosition;
static ɵfac: i0.ɵɵFactoryDeclaration<TreeDragAndDropControl, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<TreeDragAndDropControl>;
}