|
| 1 | +import * as React from "react"; |
| 2 | +import { CalendarProps, Components, Event, stringOrDate } from "../../index"; |
| 3 | + |
| 4 | +export type DragAction = "resize" | "move"; |
| 5 | + |
| 6 | +export type DragDirection = "UP" | "DOWN" | "LEFT" | "RIGHT"; |
| 7 | + |
| 8 | +export interface EventInteractionArgs<TEvent> { |
| 9 | + event: TEvent; |
| 10 | + start: stringOrDate; |
| 11 | + end: stringOrDate; |
| 12 | + isAllDay?: boolean; |
| 13 | + resourceId?: string | number; |
| 14 | +} |
| 15 | + |
| 16 | +export interface OnDragStartArgs<TEvent> { |
| 17 | + event: TEvent; |
| 18 | + action: DragAction; |
| 19 | + direction: DragDirection; |
| 20 | +} |
| 21 | + |
| 22 | +export interface DragFromOutsideItemArgs { |
| 23 | + start: stringOrDate; |
| 24 | + end: stringOrDate; |
| 25 | + allDay: boolean; |
| 26 | +} |
| 27 | + |
| 28 | +export interface withDragAndDropProps<TEvent extends object = Event, TResource extends object = object> { |
| 29 | + onEventDrop?: ((args: EventInteractionArgs<TEvent>) => void) | undefined; |
| 30 | + onEventResize?: ((args: EventInteractionArgs<TEvent>) => void) | undefined; |
| 31 | + onDragStart?: ((args: OnDragStartArgs<TEvent>) => void) | undefined; |
| 32 | + onDragOver?: ((event: React.DragEvent) => void) | undefined; |
| 33 | + onDropFromOutside?: ((args: DragFromOutsideItemArgs) => void) | undefined; |
| 34 | + dragFromOutsideItem?: (() => keyof TEvent | ((event: TEvent) => Date)) | undefined; |
| 35 | + draggableAccessor?: keyof TEvent | ((event: TEvent) => boolean) | undefined; |
| 36 | + resizableAccessor?: keyof TEvent | ((event: TEvent) => boolean) | undefined; |
| 37 | + selectable?: true | false | "ignoreEvents" | undefined; |
| 38 | + resizable?: boolean | undefined; |
| 39 | + components?: Components<TEvent, TResource> | undefined; |
| 40 | + elementProps?: React.HTMLAttributes<HTMLElement> | undefined; |
| 41 | + step?: number | undefined; |
| 42 | +} |
| 43 | + |
| 44 | +interface DragAndDropCalendarProps<TEvent extends object = Event, TResource extends object = object> |
| 45 | + extends CalendarProps<TEvent, TResource>, withDragAndDropProps<TEvent, TResource> |
| 46 | +{} |
| 47 | + |
| 48 | +declare class DragAndDropCalendar<TEvent extends object = Event, TResource extends object = object> |
| 49 | + extends React.Component<DragAndDropCalendarProps<TEvent, TResource>> |
| 50 | +{} |
| 51 | + |
| 52 | +declare function withDragAndDrop<TEvent extends object = Event, TResource extends object = object>( |
| 53 | + calendar: React.ComponentType<CalendarProps<TEvent, TResource>>, |
| 54 | +): React.ComponentType<DragAndDropCalendarProps<TEvent, TResource>>; |
| 55 | + |
| 56 | +export default withDragAndDrop; |
| 57 | + |
| 58 | +// Turn off automatic exports |
| 59 | +export {}; |
0 commit comments