@siemens/ngx-datatable
Version:
ngx-datatable is an Angular table grid component for presenting large and complex data.
38 lines (37 loc) • 1.88 kB
TypeScript
import { AfterContentInit, KeyValueDiffer, OnDestroy, OutputRefSubscription, QueryList } from '@angular/core';
import { DraggableDragEvent, ReorderEventInternal, TableColumnInternal, TargetChangedEvent } from '../types/internal.types';
import { DraggableDirective } from './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<DraggableDirective>;
readonly draggables: import("@angular/core").WritableSignal<DraggableDirective[]>;
readonly subscriptions: Map<string, OutputRefSubscription[]>;
positions?: Record<string, OrderPosition>;
readonly differ: KeyValueDiffer<string, DraggableDirective>;
lastDraggingIndex?: number;
constructor();
ngAfterContentInit(): void;
ngOnDestroy(): void;
updateSubscriptions(diffMap: Record<string, DraggableDirective>): void;
private subscribeToDraggable;
private unsubscribeFromDraggable;
onDragStart(): void;
onDragging({ model, event }: DraggableDragEvent): void;
onDragEnd({ element, model, event }: DraggableDragEvent): void;
isTarget(model: TableColumnInternal, event: MouseEvent | TouchEvent): {
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 {};