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;
}