feedlytic-widget
Version:
Lightweight JavaScript widget for capturing user feedback and exit-intent surveys
52 lines (50 loc) • 1.47 kB
TypeScript
import { FeedlyticConfig, ContextualMarker, ViewportInfo } from './types';
export interface ThreadData {
type: 'feedback' | 'contextual' | 'comment' | 'exit-survey';
position: {
x: number;
y: number;
};
marker?: ContextualMarker;
viewportInfo?: ViewportInfo;
placeholder?: string;
}
export declare class ThreadInterface {
private config;
private element;
private isOpen;
private eventListeners;
private onClose;
private uploadedFiles;
private screenshots;
private currentThreadData;
private isDragging;
private dragOffset;
private dragStartPosition;
constructor(config: FeedlyticConfig);
open(data: ThreadData, onClose?: () => void): void;
close(): void;
on(event: string, callback: Function): void;
private emit;
isThreadOpen(): boolean;
private createElement;
private renderContextualTitle;
private renderContextualInfo;
private renderFeedbackTypeSelector;
private renderContactSection;
private renderExitSurveyIntro;
private renderExitSurveyContact;
private positionElement;
private addStyles;
private adjustColor;
private attachEventListeners;
private attachDragListeners;
private handleFileUpload;
private addFileToDisplay;
private removeFile;
private addScreenshotToDisplay;
private removeScreenshot;
private handleScreenshotSelection;
private handleSubmit;
destroy(): void;
}