UNPKG

ngxsmk-datatable

Version:

A powerful, feature-rich Angular datatable component with virtual scrolling, built for Angular 17+

107 lines (106 loc) 2.86 kB
import { Observable } from 'rxjs'; import { DragDropConfig, DragStartEvent, DragOverEvent, DropEvent, DragState, RowReorderEvent } from '../interfaces/drag-drop.interface'; import { ColumnReorderEvent } from '../interfaces/column.interface'; import * as i0 from "@angular/core"; /** * Service for managing drag-and-drop operations in the datatable */ export declare class DragDropService { private dragState$; private columnReorder$; private rowReorder$; private dragStart$; private dragOver$; private drop$; private config; /** * Get current drag state as observable */ get state$(): Observable<DragState>; /** * Get column reorder events */ get onColumnReorder$(): Observable<ColumnReorderEvent>; /** * Get row reorder events */ get onRowReorder$(): Observable<RowReorderEvent>; /** * Get drag start events */ get onDragStart$(): Observable<DragStartEvent>; /** * Get drag over events */ get onDragOver$(): Observable<DragOverEvent>; /** * Get drop events */ get onDrop$(): Observable<DropEvent>; /** * Get current drag state snapshot */ getState(): DragState; /** * Set configuration */ setConfig(config: Partial<DragDropConfig>): void; /** * Get configuration */ getConfig(): DragDropConfig; /** * Start dragging a column */ startDragColumn<T>(column: T, index: number, event: DragEvent): void; /** * Start dragging a row */ startDragRow<T>(row: T, index: number, event: DragEvent): void; /** * Handle drag over */ dragOver<T>(targetItem: T, targetIndex: number, event: DragEvent): void; /** * Handle drop */ drop<T>(items: T[], event: DragEvent): void; /** * End drag operation */ endDrag(): void; /** * Reorder an array by moving an item from one index to another */ private reorderArray; /** * Create drag image element */ private createDragImage; /** * Calculate drop position based on mouse position */ calculateDropPosition(targetElement: HTMLElement, mouseX: number, mouseY: number, orientation?: 'horizontal' | 'vertical'): 'before' | 'after'; /** * Check if dragging is currently active */ isDragging(): boolean; /** * Get the type of current drag operation */ getDragType(): 'column' | 'row' | null; /** * Get source index of current drag */ getSourceIndex(): number; /** * Get target index of current drag */ getTargetIndex(): number; /** * Clean up service */ ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<DragDropService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<DragDropService>; }