import { BaseDoEntity, DraggableElement, Event, MoveData, MoveSupport, Rectangle, Table, TableRow } from '../index'; export declare class TableMoveSupport extends MoveSupport { widget: Table; _moveData: TableMoveData; mouseMoveThreshold: number; protected _cursorBackdropTimeoutId: number; constructor(table: Table); get table(): Table; protected _initMoveData(event: JQuery.MouseDownEvent, elements: DraggableTableRowElement[], draggedElement: DraggableTableRowElement): void; protected _onFirstMouseMove(): void; protected _drag(event: JQuery.MouseMoveEvent): void; /** * Returns the possible row drop types for a given source and target row. These can be specified by setting the * property {@link TableRow.dropTypes} on the target row or listening for the `acceptRowDrop` event on the table. */ protected _getAcceptedRowDropTypes(event: JQuery.MouseMoveEvent, sourceRow: TableRow, targetRow: TableRow): TableRowDropTypesDo; /** * Applies general rules for a placement to be valid that cannot be altered with custom drop types * (e.g. disallow dropping a row onto itself). */ protected _isValidPlacement(targetRow: TableRow, placement: DraggedTableRowPlacement): boolean; protected _dragOutside(event: JQuery.MouseMoveEvent): void; protected _updateDropIndicator(): void; protected _dragEnd(event: JQuery.MouseUpEvent): JQuery.Promise; /** * Convert the internal "placement" type to the enum {@link TableRowDropPosition}. */ protected _getDropPosition(): TableRowDropPosition; protected _cleanup(): void; protected _append$Clone(): void; protected _update$Clone(): void; /** * Computes a text representing the given row. By default, the cell texts of all summary columns * are concatenated. If no summary columns are defined, the first visible column that provides * a text is used. */ protected _computeRowText(row: TableRow): string; } export interface TableMoveData extends MoveData { $dropIndicator: JQuery; $cursorBackdrop: JQuery; outside: boolean; sourceRow: TableRow; targetRow: TableRow; placement: DraggedTableRowPlacement; dropType: TableRowDropType; targetRowDropTypes: TableRowDropTypesDo; } export interface DraggableTableRowElement extends DraggableElement { row: TableRow; } /** * Target position represented by the current drop indicator. * * - `above` = source row is inserted before the target row. * - `below` = source row is inserted after the target row on the same level (i.e. child rows are skipped). * - `center` = source row is inserted in the target row's subtree at the end. * - `first-child` = source row is inserted in the target row's subtree at the start. */ export type DraggedTableRowPlacement = 'above' | 'below' | 'center' | 'first-child'; export declare class TableRowDropTypesDo extends BaseDoEntity { /** * Default is {@link TableRowDropType#ALLOWED} */ before: TableRowDropType; /** * Default is {@link TableRowDropType#ALLOWED} */ after: TableRowDropType; /** * Default is {@link TableRowDropType#NONE} for flat tables and {@link TableRowDropType#ALLOWED} for hierarchical tables */ inside: TableRowDropType; static of(dropType: TableRowDropType): TableRowDropTypesDo; } export declare enum TableRowDropType { ALLOWED = "allowed", FORBIDDEN = "forbidden", NONE = "none" } export declare enum TableRowDropPosition { /** * Move source row directly before target row (same level). */ BEFORE = "before", /** * Move source row directly after target row (same level). */ AFTER = "after", /** * Move source row into the subtree of target row as first direct child. */ FIRST_CHILD = "first-child", /** * Move source row into the subtree of target row as last direct child. */ LAST_CHILD = "last-child" } /** * Triggered while dragging a row over another row to allow listeners to specify the possible * drop types for the target row. */ export declare class TableAcceptRowDropEvent extends Event implements TableAcceptRowDropEventModel { mouseEvent: JQuery.MouseMoveEvent; sourceRow: TableRow; targetRow: TableRow; /** * Can be modified or replaced by a new object. * If set to null, no drops are accepted ({@link TableRowDropType#NONE}). */ dropTypes: TableRowDropTypesDo; constructor(model: TableAcceptRowDropEventModel); setDropType(dropType: TableRowDropType): void; setDropTypes(dropTypes: TableRowDropTypesDo): void; } export interface TableAcceptRowDropEventModel { mouseEvent: JQuery.MouseMoveEvent; sourceRow: TableRow; targetRow: TableRow; dropTypes?: TableRowDropTypesDo; } /** * Triggered when the mouse button has been released at an accepted location and the dragged row * is about to be moved there. * * By default, {@link Table#dropRow} is used to change the row position and, if the parent widget * is a {@link TableField}, it the field is touched. Listeners can prevent this by calling * {@link Event.preventDefault()} and providing their own logic. * * After this event has been fully processed, an additional {@link TableRowAfterDropEvent} * is always triggered, regardless of default prevention. */ export declare class TableRowDropEvent extends Event
implements TableRowDropEventModel { mouseEvent: JQuery.MouseUpEvent; sourceRow: TableRow; targetRow: TableRow; position: TableRowDropPosition; constructor(model: TableRowDropEventModel); } export interface TableRowDropEventModel { mouseEvent: JQuery.MouseUpEvent; sourceRow: TableRow; targetRow: TableRow; position: TableRowDropPosition; } /** * Triggered after the row drop operation has been completed (either using the default or a custom implementation). * This event cannot be prevented. */ export declare class TableRowAfterDropEvent extends Event
implements TableRowAfterDropEventModel { sourceRow: TableRow; targetRow: TableRow; position: TableRowDropPosition; constructor(model: TableRowDropEventModel); } export interface TableRowAfterDropEventModel { sourceRow: TableRow; targetRow: TableRow; position: TableRowDropPosition; } //# sourceMappingURL=TableMoveSupport.d.ts.map