///
export interface VirtualEvent {
type: string;
which: number;
clientX: number;
clientY: number;
altKey: boolean;
metaKey: boolean;
ctrlKey: boolean;
shiftKey: boolean;
detail?: any;
path?: VirtualDOM.VNode[];
target?: VirtualDOM.VNode;
builderElementRectMap?: {
[key: string]: ClientRect | undefined;
};
targetRect?: ClientRect;
targetSelector?: string;
builderTarget?: VirtualDOM.VNode;
builderTargetRect?: ClientRect;
builderTargetSelector?: string;
builderRenderTarget?: VirtualDOM.VNode;
builderRenderTargetRect?: ClientRect;
builderRenderTargetSelector?: string;
pageBlockTarget?: VirtualDOM.VNode;
pageBlockTargetRect?: ClientRect;
pageBlockTargetSelector?: string;
}
export interface DocumentEventMessage {
type: 'builder.documentEvent';
data: {
event: VirtualEvent;
};
}
export declare class EventCapturer {
events: string[];
element: EventTarget;
captureEvents: boolean;
usePassive: boolean;
includePath: boolean;
editingModelName: string;
observeMutations: boolean;
consoleHooked: boolean;
private observer?;
constructor(events?: string[]);
private getElementForEvent(eventName);
listen(): this;
removeListeners(): void;
private startObservingMutations();
private stopObservingMutations();
private getBuilderClientRects();
private triggerMutationEvent();
private handleEvent;
private postMessage(message);
private formatMessage(event);
private findParent(target, callback, checkElement?);
private findBuilderParent(target);
private findBuilderElementParent(target);
private findContentEditableParent(target);
private fastClone(obj);
private getClientRect(element);
private getAllParents(element);
private virtualizeEvent(event);
}