import { AfterViewInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core'; import { Subject } from 'rxjs'; import { DragDropService } from '../services/drag-drop.service'; import { DropEvent } from '../shared/drop-event.model'; import { DragPlaceholderInsertionEvent } from './placeholder-insertion-event.type'; import * as i0 from "@angular/core"; export type DropIndexFlag = 'beforeAll' | 'afterAll'; export declare class DroppableDirective implements OnInit, AfterViewInit, OnDestroy { protected el: ElementRef; private renderer; private dragDropService; private ngZone; private doc; /** * Event fired when Drag dragged element enters a valid drop target. */ dragEnterEvent: EventEmitter; /** * Event fired when an element is being dragged over a valid drop target */ dragOverEvent: EventEmitter; /** * Event fired when a dragged element leaves a valid drop target. */ dragLeaveEvent: EventEmitter; /** * Event fired when an element is dropped on a valid drop target. */ dropEvent: EventEmitter; /** * CSS class applied on the draggable that is applied when the item is being dragged. */ dragOverClass: string; /** * Defines compatible drag drop pairs. Values must match both in draggable and droppable.dropScope. */ dropScope: string | Array; placeholderTag: string; placeholderStyle: any; /** * 设置placeholder的提示性文字,仅支持文本(安全起见) */ placeholderText: string; /** * 用于允许拖动到元素上,方便树形结构的拖动可以成为元素的子节点 */ allowDropOnItem: boolean; /** * allowDropOnItem为true时,才有效,用于允许拖动到元素上后,被命中的元素增加样式 */ dragOverItemClass: string; /** * 用于修正有内嵌列表后,父项高度被撑大,此处height,width为父项自己的高度(用于纵向拖动),宽度(用于横向拖动) * */ nestingTargetRect: { height?: number; width?: number; }; /** * 是否启用越过立即交换位置的算法, 不能与allowDropOnItem一起用,allowDropOnItem为true时,此规则无效 * */ switchWhileCrossEdge: boolean; /** * sortable的情况下,拖动到可以drop但不在sortContainer里的时候默认drop的位置 * */ defaultDropPosition: 'closest' | 'before' | 'after'; /** * sortable的情况下,列表如果使用了virtual scroll等部分加载技术时候返回正确的dropIndex * */ dropSortCountSelector: string; dropSortVirtualScrollOption: { totalLength?: number; startIndex?: number; }; private dropFlag; private sortContainer; private sortDirection; private sortDirectionZMode; private placeholder; private dragCount; private dropIndex; private dragStartSubscription; private dragEndSubscription; private dropEndSubscription; private overElement; private dragPartEventSub; private allowDropCache; private dragElIndex; placeholderInsertionEvent: Subject; placeholderRenderEvent: Subject; document: Document; constructor(el: ElementRef, renderer: Renderer2, dragDropService: DragDropService, ngZone: NgZone, doc: any); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; dragEnter(e: any): void; dragOver(e: any): void; dragLeave(e: any): void; drop(e: any): void; allowDrop(e: any): boolean; private dropSortCountSelectorFilterFn; private findSortableEl; private calcPosition; private calcPositionOutside; setPlaceholder: () => void; private insertPlaceholder; private isDragPlaceholderPosition; private hitDragOriginPlaceholder; private removePlaceholder; private removeDragoverItemClass; private checkSelfFromIndex; private getRealIndex; getBoundingRectAndRealPosition(targetElement: any): any; getSortContainer(): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }