@multiplayer-app/session-recorder-browser
Version:
Multiplayer Fullstack Session Recorder for Browser
90 lines • 3.27 kB
TypeScript
import { Observable } from 'lib0/observable';
import { SessionWidgetConfig, SessionState, ToastConfig } from '../types';
import { ButtonState, ContinuousRecordingSaveButtonState } from './buttonStateConfigs';
import './styles/button.scss';
type SessionWidgetEvents = 'start' | 'stop' | 'pause' | 'resume' | 'cancel' | 'save' | 'continuous-debugging';
export declare class SessionWidget extends Observable<SessionWidgetEvents> {
readonly recorderButton: HTMLButtonElement;
private readonly initialPopover;
private readonly finalPopover;
private readonly overlay;
private readonly submitSessionDialog;
private readonly toast;
private _isStarted;
private _isPaused;
private _isInitialized;
private _error;
private _recorderPlacement;
private _showWidget;
private _initialPopoverVisible;
private _finalPopoverVisible;
private _buttonState;
private _continuousRecording;
private _showContinuousRecording;
private _widgetTextOverrides;
private uiManager;
private readonly commentTextarea;
private buttonDraggabilityObserver;
private dragManager;
buttonClickExternalHandler: (() => boolean | void) | null;
seconds: number;
timerInterval: any;
private readonly isBrowser;
private readonly isBrowserExtension;
private shadowRoot;
private hostElement;
set buttonState(newState: ButtonState);
private set initialPopoverVisible(value);
private set finalPopoverVisible(value);
get error(): string;
set error(v: string);
set isStarted(v: boolean);
set isPaused(v: boolean);
constructor();
updateState(state: SessionState | null, continuousRecording: boolean): void;
updateContinuousRecordingState(checked: boolean, disabled?: boolean): void;
updateSaveContinuousDebugSessionState(state: ContinuousRecordingSaveButtonState): void;
/**
* Shows a toast message with optional action button
* @param config - The toast configuration including message, type, and optional button
* @param duration - Duration in milliseconds to show the toast (default: 10000ms)
*/
showToast(config: ToastConfig, duration?: number): void;
/**
* Hides the currently displayed toast message
*/
hideToast(): void;
private handleClickOutside;
private observeButtonDraggableMode;
init(options: SessionWidgetConfig): void;
private appendElements;
private addRecorderDragFunctionality;
private updatePopoverPosition;
private addEventListeners;
private handleStopRecording;
handleUIReseting(): void;
private handleCloseInitialPopover;
private handleCloseFinalPopover;
onRequestError(): void;
private handleDismissRecording;
private resetRecordingButton;
private addListener;
private onRecordingButtonClick;
private updateButton;
private handleContinuousRecordingChange;
private handleSaveContinuousDebugSession;
private startRecording;
private onStart;
private onStop;
private onPause;
private onResume;
private onCancel;
enable(): void;
disable(): void;
destroy(): void;
startTimer(): void;
stopTimer(): void;
makeOverlayDraggable(): void;
}
export {};
//# sourceMappingURL=index.d.ts.map