UNPKG

vue-devui

Version:

DevUI components based on Vite and Vue3

138 lines (137 loc) 4.62 kB
import { Subject } from 'rxjs'; import { EventEmitter } from './preserve-next-event-emitter'; import { DragDropService } from './drag-drop.service'; import { DirectiveBinding, InjectionKey, VNode } from 'vue'; import { NgDirectiveBase } from './directive-base'; export type DropIndexFlag = 'beforeAll' | 'afterAll'; export interface IDroppableBinding { dragOverClass?: string; dropScope?: string | Array<string>; placeholderTag?: string; placeholderStyle?: Record<string, string>; placeholderText?: string; allowDropOnItem?: boolean; dragOverItemClass?: string; nestingTargetRect?: { height?: number; width?: number; }; switchWhileCrossEdge?: boolean; defaultDropPosition?: 'closest' | 'before' | 'after'; dropSortCountSelector: string; dropSortVirtualScrollOption?: { totalLength?: number; startIndex?: number; }; } export interface IDroppableListener { '@dragEnterEvent'?: (_: any) => void; '@dragOverEvent'?: (_: any) => void; '@dragLeaveEvent'?: (_: any) => void; '@dropEvent'?: (_: any) => void; } export declare class DropEvent { nativeEvent: any; dragData: any; batchDragData: any; dropSubject: Subject<any>; dropIndex?: number; dragFromIndex?: number; dropOnItem?: boolean; dropOnOrigin?: boolean; constructor(event: any, data: any, dropSubject: Subject<any>, dropIndex?: number, dragFromIndex?: number, dropOnItem?: boolean, dropOnOrigin?: boolean, batchDragData?: Array<any>); } export interface DragPlaceholderInsertionEvent { command: 'insertBefore' | 'append' | 'remove'; container?: HTMLElement; relatedEl?: Element; } export interface DragPlaceholderInsertionIndexEvent { command: 'insertBefore' | 'append' | 'remove'; index?: number; } export declare class DroppableDirective extends NgDirectiveBase<IDroppableBinding, IDroppableListener> { static INSTANCE_KEY: string; static TOKEN: InjectionKey<DroppableDirective>; hostListenerMap?: { [key: string]: string; } | undefined; dragEnterEvent: EventEmitter<any>; dragOverEvent: EventEmitter<any>; dragLeaveEvent: EventEmitter<any>; dropEvent: EventEmitter<DropEvent>; dragOverClass?: string; dropScope: string | Array<string>; placeholderTag: string; placeholderStyle: any; placeholderText: string; allowDropOnItem: boolean; dragOverItemClass?: string; nestingTargetRect?: { height?: number; width?: number; }; switchWhileCrossEdge: boolean; defaultDropPosition: 'closest' | 'before' | 'after'; 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<DragPlaceholderInsertionEvent>; placeholderRenderEvent: Subject<any>; document: Document; el: { nativeElement: any; }; private dragDropService; constructor(el: HTMLElement, dragDropService: DragDropService); ngOnInit(): void; ngAfterViewInit(): void; ngOnDestroy(): void; dragEnter(e: DragEvent): void; dragOver(e: DragEvent): void; dragLeave(e: DragEvent): void; drop(e: DragEvent): void; allowDrop(e: DragEvent): 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: HTMLElement): any; getSortContainer(): any; } declare const _default: { mounted(el: HTMLElement & { [props: string]: any; }, binding: DirectiveBinding<IDroppableBinding & IDroppableListener>, vNode: VNode): void; updated(el: HTMLElement & { [props: string]: any; }, binding: DirectiveBinding<IDroppableBinding & IDroppableListener>): void; beforeUnmount(el: HTMLElement & { [props: string]: any; }): void; }; export default _default;