Skip to content

MoveColumn

HTMLRevoGridElementEventMap (Extended from global)

Section titled “HTMLRevoGridElementEventMap (Extended from global)”
interface HTMLRevoGridElementEventMap {
[COLUMN_DRAG_START_EVENT]: ColumnDragStartEventData;
[COLUMN_DRAG_MOVE_EVENT]: MouseEvent;
[BEFORE_COLUMN_DRAG_END_EVENT]: BeforeColumnDragEndEventData;
[COLUMN_DRAG_END_EVENT]: ColumnDragEventData
}
export declare function getLeftRelative(absoluteX: number, gridPos: number, offset: number): number;;

export declare function getColumnDragPosition(targetItem: PositionItem, startItem: PositionItem, renderOffset: number, scrollOffset: number): number;;

COLUMN_DRAG_MOVE_EVENT: string;

COLUMN_DRAG_END_EVENT: string;

BEFORE_COLUMN_DRAG_END_EVENT: string;

COLUMN_DRAG_START_EVENT: string;

export type DragStartEventDetails = {
event: MouseEvent;
data: ColumnPropProp;
};

export type ColumnDragStartEventData = ColumnPropProp;

export type StaticData = {
startPos: number;
startItem: PositionItem;
pin?: DimensionColPin;
dataEl: HTMLElement;
scrollEl: Element;
gridEl: HTMLElement;
cols: DimensionSettingsState;
};

export type ColumnDragEventData = {
/**
* Reordered columns for the affected column viewport.
*/
columns: ColumnRegular[];
elRect: DOMRect;
gridRect: DOMRect;
/**
* Physical column indexes in their current visual order.
*/
order: number[];
scrollOffset: number;
type: DimensionCols;
};

BeforeColumnDragEndEventData (Extended from column.drag.plugin.d.ts)

Section titled “BeforeColumnDragEndEventData (Extended from column.drag.plugin.d.ts)”
export type BeforeColumnDragEndEventData = StaticData & {
startPosition: PositionItem;
newPosition: PositionItem;
newItem?: ColumnRegular;
};

class ColumnMovePlugin {
dragStart({ event, data }: DragStartEventDetails): void;;
doMove(e: MouseEvent): void;;
move(e: MouseEvent): void;;
onMouseOut(_: MouseEvent): void;;
onMouseUp(e: MouseEvent): void;;
clearOrder(): void;;
/**
* Clearing subscription
*/
clearSubscriptions(): void;;
}

class ColumnOrderHandler {
renderAutoscroll(_: MouseEvent, parent: HTMLElement | null): void;;
autoscroll(pos: number, dataContainerSize: number, direction?: string): void;;
start(e: MouseEvent, { dataEl, gridRect, scrollEl, gridEl }: {
dataEl: HTMLElement;
gridRect: DOMRect;
scrollEl: Element;
gridEl: Element;
}, dir?: 'top' | 'left'): void;;
stop(gridEl: Element): void;;
showHandler(pos: number, size: number, direction?: string): void;;
render(): HTMLDivElement;;
}