ember-drag-sort
Version:
A sortable list component with support for multiple and nested lists.
47 lines (46 loc) • 1.47 kB
TypeScript
import Component from '@glimmer/component';
import type DragSort from 'ember-drag-sort/services/drag-sort';
interface DragSortItemSignature<Item extends object> {
Args: {
additionalArgs?: object;
determineForeignPositionAction?: unknown;
draggingEnabled?: boolean;
dragEndAction?: unknown;
dragStartAction?: (args: {
event: DragEvent;
element: HTMLElement;
draggedItem: Item;
}) => void;
group: string;
handle?: string;
index: number;
isHorizontal: boolean;
isRtl?: boolean;
item: Item;
items: Array<Item>;
sourceOnly: boolean;
};
}
export default class DragSortItem<Item extends object> extends Component<DragSortItemSignature<Item>> {
dragSort: DragSort<Item>;
el: HTMLElement;
_isDragged: boolean;
get draggable(): true | null;
get isDragged(): boolean;
get isDraggingOver(): boolean;
get isLast(): boolean;
get isVertical(): boolean;
get shouldShowPlaceholderBefore(): boolean | null;
get shouldShowPlaceholderAfter(): boolean;
dragStart(event: DragEvent): void;
dragEnd(event: DragEvent): void;
drop(event: DragEvent): void;
dragOver(event: DragEvent): void;
startDragging(): void;
endDragging(): void;
draggingOver(event: DragEvent): void;
collapse(): void;
restore(): void;
isHandleUsed(event: DragEvent): boolean;
}
export {};