68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import type { InteractEvent } from '@interactjs/core/InteractEvent';
 | 
						|
import type { PerActionDefaults } from '@interactjs/core/options';
 | 
						|
import type { Plugin } from '@interactjs/core/scope';
 | 
						|
import type { ListenersArg, OrBoolean } from '@interactjs/core/types';
 | 
						|
declare module '@interactjs/core/Interactable' {
 | 
						|
    interface Interactable {
 | 
						|
        draggable(options: Partial<OrBoolean<DraggableOptions>> | boolean): this;
 | 
						|
        draggable(): DraggableOptions;
 | 
						|
        /**
 | 
						|
         * ```js
 | 
						|
         * interact(element).draggable({
 | 
						|
         *     onstart: function (event) {},
 | 
						|
         *     onmove : function (event) {},
 | 
						|
         *     onend  : function (event) {},
 | 
						|
         *
 | 
						|
         *     // the axis in which the first movement must be
 | 
						|
         *     // for the drag sequence to start
 | 
						|
         *     // 'xy' by default - any direction
 | 
						|
         *     startAxis: 'x' || 'y' || 'xy',
 | 
						|
         *
 | 
						|
         *     // 'xy' by default - don't restrict to one axis (move in any direction)
 | 
						|
         *     // 'x' or 'y' to restrict movement to either axis
 | 
						|
         *     // 'start' to restrict movement to the axis the drag started in
 | 
						|
         *     lockAxis: 'x' || 'y' || 'xy' || 'start',
 | 
						|
         *
 | 
						|
         *     // max number of drags that can happen concurrently
 | 
						|
         *     // with elements of this Interactable. Infinity by default
 | 
						|
         *     max: Infinity,
 | 
						|
         *
 | 
						|
         *     // max number of drags that can target the same element+Interactable
 | 
						|
         *     // 1 by default
 | 
						|
         *     maxPerElement: 2
 | 
						|
         * })
 | 
						|
         *
 | 
						|
         * var isDraggable = interact('element').draggable(); // true
 | 
						|
         * ```
 | 
						|
         *
 | 
						|
         * Get or set whether drag actions can be performed on the target
 | 
						|
         *
 | 
						|
         * @param options - true/false or An object with event
 | 
						|
         * listeners to be fired on drag events (object makes the Interactable
 | 
						|
         * draggable)
 | 
						|
         */
 | 
						|
        draggable(options?: Partial<OrBoolean<DraggableOptions>> | boolean): this | DraggableOptions;
 | 
						|
    }
 | 
						|
}
 | 
						|
declare module '@interactjs/core/options' {
 | 
						|
    interface ActionDefaults {
 | 
						|
        drag: DraggableOptions;
 | 
						|
    }
 | 
						|
}
 | 
						|
declare module '@interactjs/core/types' {
 | 
						|
    interface ActionMap {
 | 
						|
        drag?: typeof drag;
 | 
						|
    }
 | 
						|
}
 | 
						|
export type DragEvent = InteractEvent<'drag'>;
 | 
						|
export interface DraggableOptions extends PerActionDefaults {
 | 
						|
    startAxis?: 'x' | 'y' | 'xy';
 | 
						|
    lockAxis?: 'x' | 'y' | 'xy' | 'start';
 | 
						|
    oninertiastart?: ListenersArg;
 | 
						|
    onstart?: ListenersArg;
 | 
						|
    onmove?: ListenersArg;
 | 
						|
    onend?: ListenersArg;
 | 
						|
}
 | 
						|
declare const drag: Plugin;
 | 
						|
export default drag;
 |