survey-creator-core
Version:
Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.
62 lines (61 loc) • 3.79 kB
TypeScript
import { DragDropAllowEvent, DragDropCore, EventBase, IElement, IPanel, ISurveyElement, JsonObject, PageModel, QuestionRowModel, SurveyElement } from "survey-core";
import { IQuestionToolboxItem } from "./toolbox";
import { SurveyElementAdornerBase } from "./components/survey-element-adorner-base";
import { DropIndicatorPosition } from "./drag-drop-enums";
export declare function calculateIsEdge(dropTargetNode: HTMLElement, clientY: number): boolean;
export declare function calculateIsSide(dropTargetNode: HTMLElement, clientX: number): boolean;
export declare function calculateDragOverLocation(clientX: number, clientY: number, rect: DOMRectInit, direction?: "top-bottom" | "left-right"): DropIndicatorPosition;
export declare class DragDropSurveyElements extends DragDropCore<any> {
static newGhostPage: PageModel;
static restrictDragQuestionBetweenPages: boolean;
static edgeHeight: number;
static nestedPanelDepth: number;
static ghostSurveyElementName: string;
insideElement: any;
protected prevIsEdge: any;
protected dragOverIndicatorElement: any;
protected dragOverLocation: DropIndicatorPosition;
protected get draggedElementAdorner(): SurveyElementAdornerBase | null;
protected get dropTargetAdorner(): SurveyElementAdornerBase | null;
protected get draggedElementType(): string;
protected isDraggedElementSelected: boolean;
onGetMaxNestedPanels: () => number;
onGetMaxPanelNestingLevel: () => number;
onDragOverLocationCalculating: (options: any) => void;
get maxNestedPanels(): number;
get maxPanelNestingLevel(): number;
isAllowedToAdd: (elementType: string, container: SurveyElement) => boolean;
startDragToolboxItem(event: PointerEvent, draggedElementJson: JsonObject, toolboxItemModel: IQuestionToolboxItem): void;
get isDraggingExistingElement(): boolean;
startDragSurveyElement(event: PointerEvent, draggedElement: any, isElementSelected?: boolean): void;
protected getShortcutText(draggedElement: any): string;
protected createDraggedElementShortcut(text: string, draggedElementNode?: HTMLElement, event?: PointerEvent): HTMLElement;
protected createDraggedElementIcon(): HTMLElement;
protected getDraggedElementClass(): string;
protected createElementFromJson(json: object): HTMLElement;
private createNewElement;
protected findDropTargetNodeByDragOverNode(dragOverNode: HTMLElement): HTMLElement;
protected getDropTargetByDataAttributeValue(dataAttributeValue: string, dropTargetNode: HTMLElement, event: PointerEvent): any;
protected isDropTargetValid(dropTarget: any, dropTargetNode?: HTMLElement, dragOverLocation?: DropIndicatorPosition): boolean;
protected doBanDropHere: () => void;
private shouldRestricDragQuestionBetweenPages;
protected findDeepestDropTargetChild(parent: HTMLElement): HTMLElement;
/**
* An event that is raised when users drag and drop survey elements while designing the survey in [Survey Creator](https://surveyjs.io/survey-creator/documentation/overview). Use this event to control drag and drop operations.
*/
onDragDropAllow: EventBase<DragDropCore<any>, DragDropAllowEvent>;
private isAllowDragOver;
dragOverCore(dropTarget: ISurveyElement, dragOverLocation: DropIndicatorPosition): void;
private dragDropFindRow;
private isSameElement;
private isDragInsideItself;
private getDragDropElementType;
dragOver(event: PointerEvent): void;
protected onStartDrag(): void;
moveElementInPanel(panel: IPanel, src: IElement, target: IElement, targetIndex: number): void;
protected doDrop: () => any;
private removeDragOverMarker;
clear(): void;
private getTargetParent;
protected getTargetRow(dropTarget: any): QuestionRowModel;
}