survey-core
Version:
survey.js is a JavaScript Survey Library. It is a modern way to add a survey to your website. It uses JSON for survey metadata and results.
56 lines (55 loc) • 3.06 kB
TypeScript
import { SurveyModel } from "../survey";
import { EventBase } from "../base";
import { IShortcutText, ISurvey } from "../base-interfaces";
import { IDragDropEngine } from "./engine";
import { IDragDropDOMAdapter } from "./dom-adapter";
export declare abstract class DragDropCore<T> implements IDragDropEngine {
private surveyValue?;
private creator?;
private _isBottom;
get isBottom(): boolean;
set isBottom(val: boolean);
onGhostPositionChanged: EventBase<{}>;
protected ghostPositionChanged(): void;
onDragStart: EventBase<DragDropCore<T>>;
onDragEnd: EventBase<DragDropCore<T>>;
onDragClear: EventBase<DragDropCore<T>>;
onBeforeDrop: EventBase<DragDropCore<T>, any>;
onAfterDrop: EventBase<DragDropCore<T>, any>;
draggedElement: any;
protected abstract get draggedElementType(): string;
protected parentElement: T;
dropTarget: any;
protected get dropTargetDataAttributeName(): string;
protected get survey(): SurveyModel;
prevDropTarget: any;
protected allowDropHere: boolean;
protected domAdapter: IDragDropDOMAdapter;
constructor(surveyValue?: ISurvey, creator?: any, longTap?: boolean, domAdapter?: IDragDropDOMAdapter);
startDrag(event: PointerEvent, draggedElement: any, parentElement?: any, draggedElementNode?: HTMLElement, preventSaveTargetNode?: boolean): void;
private getRootElement;
dragInit(event: PointerEvent, draggedElement: any, parentElement?: any, draggedElementNode?: HTMLElement): void;
protected onStartDrag(event?: PointerEvent): void;
protected isDropTargetDoesntChanged(newIsBottom: boolean): boolean;
protected getShortcutText(draggedElement: IShortcutText): string;
protected createDraggedElementShortcut(text: string, draggedElementNode?: HTMLElement, event?: PointerEvent): HTMLElement;
protected getDraggedElementClass(): string;
protected doDragOver(): void;
protected afterDragOver(dropTargetNode: HTMLElement): void;
protected abstract isDropTargetValid(dropTarget: any, dropTargetNode?: HTMLElement): boolean;
protected banDropHere: () => void;
protected doBanDropHere: () => void;
protected findDropTargetNodeFromPoint(clientX: number, clientY: number): HTMLElement;
protected getDataAttributeValueByNode(node: HTMLElement): string;
protected getDropTargetByNode(dropTargetNode: HTMLElement, event: PointerEvent): any;
private capitalizeFirstLetter;
protected abstract getDropTargetByDataAttributeValue(dataAttributeValue: string, dropTargetNode?: HTMLElement, event?: PointerEvent): any;
protected calculateVerticalMiddleOfHTMLElement(HTMLElement: HTMLElement): number;
protected calculateHorizontalMiddleOfHTMLElement(HTMLElement: HTMLElement): number;
protected calculateIsBottom(clientY: number, dropTargetNode?: HTMLElement): boolean;
protected findDropTargetNodeByDragOverNode(dragOverNode: HTMLElement): HTMLElement;
dragOver(event: PointerEvent): void;
protected abstract doDrop(): any;
drop(): void;
clear(): void;
}