videomail-client
Version:
A wicked npm package to record videos directly in the browser, wohooo!
88 lines (87 loc) • 3 kB
TypeScript
import "./../styles/main.styl";
import { ShowParams, StartOverParams } from "../client";
import { VideomailClientOptions } from "../types/options";
import { Videomail } from "../types/Videomail";
import Despot from "../util/Despot";
import { FormInputs, FormMethodType } from "./form";
interface BuildOptions {
playerOnly?: boolean;
replayParentElementId?: string | undefined;
replayParentElement?: HTMLElement | undefined;
}
export interface UnloadParams {
startingOver?: boolean;
e?: Event;
}
export interface FormReadyParams {
paused?: boolean | undefined;
}
declare class Container extends Despot {
private readonly visibility;
private readonly htmlElement;
private readonly visuals;
private readonly buttons;
private readonly resource;
private form;
private hasError;
private submitted;
private lastValidation;
private containerElement?;
private built;
constructor(options: VideomailClientOptions);
private buildChildren;
build(buildOptions?: BuildOptions): HTMLElement | null | undefined;
private findParentFormElement;
private getFormElement;
buildForm(): void;
private processError;
private initEvents;
private correctDimensions;
private removeDimensions;
private unloadChildren;
private hideMySelf;
private submitVideomail;
limitWidth(width?: number): import("../types/dimension").Dimension | undefined;
limitHeight(height: number | undefined): import("../types/dimension").Dimension;
private areVisualsHidden;
hasElement(): boolean;
getSubmitButton(): HTMLButtonElement | undefined;
querySelector(selector: string): HTMLElement | null | undefined;
beginWaiting(): void;
endWaiting(): void;
appendChild(child: any): void;
insertBefore(child: any, reference: any): void;
unload(params?: UnloadParams): void;
show(params?: ShowParams): HTMLElement;
hide(): void;
startOver(params?: StartOverParams): void;
showReplayOnly(): void;
isNotifying(): boolean | null | undefined;
isPaused(): boolean | undefined;
pause(params?: {
event: MouseEvent;
}): void;
validate(event?: any, force?: boolean): boolean;
disableForm(buttonsToo: boolean): void;
enableForm(buttonsToo: boolean): void;
hasForm(): boolean;
private buttonsAreReady;
submitAll(formData: FormInputs, method: FormMethodType, url: string): Promise<void>;
isBuilt(): boolean;
isReplayShown(): boolean;
isDirty(): boolean;
getReplay(): import("./visuals/replay").default;
isOutsideElementOf(element: HTMLElement): boolean;
loadForm(videomail: Videomail): void;
enableAudio(): void;
disableAudio(): void;
submit(): Promise<boolean | undefined>;
isCountingDown(): boolean | undefined;
isRecording(): boolean;
record(): void;
resume(): void;
stop(): void;
recordAgain(): void;
setLimitSeconds(limitSeconds: number): void;
}
export default Container;