UNPKG

@recruitler/drag-drop

Version:

A forked version of Angular/'s drag-drop CDK.

52 lines (51 loc) 1.82 kB
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import { Direction } from '@angular/cdk/bidi'; /** * Function that is used to determine whether an item can be sorted into a particular index. * @docs-private */ export type SortPredicate<T> = (index: number, item: T) => boolean; /** * Item that can be sorted within `DropListSortStrategy`. This is a limited representation of * `DragRef` used to avoid circular dependencies. It is intended to only be used within * `DropListSortStrategy`. * @docs-private */ export interface DropListSortStrategyItem { isDragging(): boolean; getPlaceholderElement(): HTMLElement; getRootElement(): HTMLElement; _sortFromLastPointerPosition(): void; getVisibleElement(): HTMLElement; } /** * Strategy used to sort and position items within a drop list. * @docs-private */ export interface DropListSortStrategy<T extends DropListSortStrategyItem> { direction: Direction; start(items: readonly T[]): void; nest(item: T, nestIndex: number, currentNestIndex: number): void; unnest(item: T, nestIndex: number): void; sort(item: T, pointerX: number, pointerY: number, pointerDelta: { x: number; y: number; }): { previousIndex: number; currentIndex: number; } | null; enter(item: T, pointerX: number, pointerY: number, index?: number): void; withItems(items: readonly T[]): void; withSortPredicate(predicate: SortPredicate<T>): void; reset(): void; getActiveItemsSnapshot(): readonly T[]; getItemIndex(item: T): number; getActiveItem(index: number): T; updateOnScroll(topDifference: number, leftDifference: number): void; }