react-sortablejs
Version:
React bindings to [SortableJS](https://github.com/SortableJS/Sortable)
43 lines • 2.06 kB
TypeScript
import { Component } from "react";
import { Options, SortableEvent } from "sortablejs";
import { AllMethodsExceptMove, HandledMethodNames, ItemInterface, ReactSortableProps } from "./types";
export declare class ReactSortable<T extends ItemInterface> extends Component<ReactSortableProps<T>> {
static defaultProps: Partial<ReactSortableProps<any>>;
private ref;
constructor(props: ReactSortableProps<T>);
componentDidMount(): void;
render(): JSX.Element;
private getChildren;
/** Appends the `sortable` property to this component */
private get sortable();
/** Converts all the props from `ReactSortable` into the `options` object that `Sortable.create(el, [options])` can use. */
makeOptions(): Options;
/** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop & an `on[Handler]` ReactSortable method. */
prepareOnHandlerPropAndDOM(evtName: HandledMethodNames): (evt: SortableEvent) => void;
/** Prepares a method that will be used in the sortable options to call an `on[Handler]` prop */
prepareOnHandlerProp(evtName: Exclude<AllMethodsExceptMove, HandledMethodNames>): (evt: SortableEvent) => void;
/** Calls the `props.on[Handler]` function */
callOnHandlerProp(evt: SortableEvent, evtName: AllMethodsExceptMove): void;
onAdd(evt: MultiDragEvent): void;
onRemove(evt: MultiDragEvent): void;
onUpdate(evt: MultiDragEvent): void;
onStart(): void;
onEnd(): void;
onChoose(evt: SortableEvent): void;
onUnchoose(evt: SortableEvent): void;
onSpill(evt: SortableEvent): void;
onSelect(evt: MultiDragEvent): void;
onDeselect(evt: MultiDragEvent): void;
}
interface MultiIndices {
multiDragElement: HTMLElement;
index: number;
}
export interface MultiDragEvent extends SortableEvent {
clones: HTMLElement[];
oldIndicies: MultiIndices[];
newIndicies: MultiIndices[];
swapItem: HTMLElement | null;
}
export {};
//# sourceMappingURL=react-sortable.d.ts.map