@swimlane/ngx-datatable
Version:
ngx-datatable is an Angular table grid component for presenting large and complex data.
35 lines (34 loc) • 1.52 kB
TypeScript
import { AfterContentInit, EventEmitter, KeyValueDiffer, OnDestroy, QueryList } from '@angular/core';
import { DraggableDirective } from './draggable.directive';
import { TableColumn } from '../types/table-column.type';
import { DraggableDragEvent, OrderableReorderEvent, TargetChangedEvent } from '../types/internal.types';
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;
reorder: EventEmitter<OrderableReorderEvent>;
targetChanged: EventEmitter<TargetChangedEvent>;
draggables: QueryList<DraggableDirective>;
positions: Record<string, OrderPosition>;
differ: KeyValueDiffer<string, DraggableDirective>;
lastDraggingIndex: number;
ngAfterContentInit(): void;
ngOnDestroy(): void;
updateSubscriptions(): void;
onDragStart(): void;
onDragging({ element, model, event }: DraggableDragEvent): void;
onDragEnd({ element, model, event }: DraggableDragEvent): void;
isTarget(model: TableColumn, event: MouseEvent): {
pos: OrderPosition;
i: number;
};
private createMapDiffs;
static ɵfac: i0.ɵɵFactoryDeclaration<OrderableDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<OrderableDirective, "[orderable]", never, {}, { "reorder": "reorder"; "targetChanged": "targetChanged"; }, ["draggables"], never, true, never>;
}
export {};