@kwiz/fluentui
Version:
KWIZ common controls for FluentUI
15 lines (14 loc) • 1.49 kB
TypeScript
import { iDraggableProps, iDraggedItemType, iDroppableProps } from "./drag-drop.types";
interface one<DragItemType extends iDraggedItemType<string>> {
dragInfo: iDraggableProps<DragItemType>;
}
interface other<DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never> {
dropInfo: iDroppableProps<DropInfoTypes, DropInfoItemTypes>;
}
type iDragDropProps<DragItemType extends iDraggedItemType<string>, DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never> = one<DragItemType> & Partial<other<DropInfoTypes, DropInfoItemTypes>> | Partial<one<DragItemType>> & other<DropInfoTypes, DropInfoItemTypes> | (one<DragItemType> & other<DropInfoTypes, DropInfoItemTypes>);
type iProps<DragItemType extends iDraggedItemType<string>, DropInfoTypes extends string, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes>> = Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
onDraggingClassName?: string;
onDragOverClassName?: string;
} & iDragDropProps<DragItemType, DropInfoTypes, DropInfoItemTypes>;
export declare function DragDropContainer<DragItemType extends iDraggedItemType<string> = never, DropInfoTypes extends string = never, DropInfoItemTypes extends iDraggedItemType<DropInfoTypes> = never>(props: React.PropsWithChildren<iProps<DragItemType, DropInfoTypes, DropInfoItemTypes>>): import("react/jsx-runtime").JSX.Element;
export {};