@siemens/ngx-datatable
Version:
ngx-datatable is an Angular table grid component for presenting large and complex data.
38 lines (37 loc) • 2.02 kB
TypeScript
import { AfterContentInit, KeyValueDiffer, OnDestroy, OutputRefSubscription, QueryList } from '@angular/core';
import { ReorderEventInternal, TableColumnInternal, TargetChangedEvent } from '../types/internal.types';
import { DragEvent, DatatableDraggableDirective } from './datatable-draggable.directive';
import * as i0 from "@angular/core";
interface OrderPosition {
left: number;
right: number;
index: number;
element: HTMLElement;
}
export declare class OrderableDirective implements AfterContentInit, OnDestroy {
private document;
readonly reorder: import("@angular/core").OutputEmitterRef<ReorderEventInternal>;
readonly targetChanged: import("@angular/core").OutputEmitterRef<TargetChangedEvent>;
draggablesQueryList: QueryList<DatatableDraggableDirective>;
readonly draggables: import("@angular/core").WritableSignal<DatatableDraggableDirective[]>;
readonly subscriptions: Map<string, OutputRefSubscription[]>;
positions?: Record<string, OrderPosition>;
readonly differ: KeyValueDiffer<string, DatatableDraggableDirective>;
lastDraggingIndex?: number;
constructor();
ngAfterContentInit(): void;
ngOnDestroy(): void;
updateSubscriptions(diffMap: Record<string, DatatableDraggableDirective>): void;
private subscribeToDraggable;
private unsubscribeFromDraggable;
onDragStart(): void;
onDragging({ currentX, currentY, initialX }: DragEvent, model: TableColumnInternal, element: HTMLElement): void;
onDragEnd({ currentX, currentY }: DragEvent, model: TableColumnInternal, element: HTMLElement): void;
isTarget(model: TableColumnInternal, clientX: number, clientY: number): {
pos: OrderPosition;
index: number;
} | undefined;
static ɵfac: i0.ɵɵFactoryDeclaration<OrderableDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OrderableDirective, "[orderable]", never, {}, { "reorder": "reorder"; "targetChanged": "targetChanged"; }, ["draggablesQueryList"], never, true, never>;
}
export {};