videomail-client
Version:
A wicked npm package to record videos directly in the browser, wohooo!
404 lines (403 loc) • 15.4 kB
TypeScript
import { VideomailClientOptions } from "../types/options";
import { Videomail } from "../types/Videomail";
import Despot from "../util/Despot";
import Container from "./container";
export type FormInputs = Record<string, string>;
export declare const FormMethod: {
readonly POST: "post";
readonly PUT: "put";
readonly GET: "get";
};
export type FormMethodType = (typeof FormMethod)[keyof typeof FormMethod];
declare class Form extends Despot {
private readonly container;
private readonly formElement;
private keyInput?;
private readonly FORM_FIELDS;
constructor(container: Container, formElement: HTMLFormElement, options: VideomailClientOptions);
private getData;
transformFormData(formInputs: FormInputs): {
subject?: string;
body?: string;
from?: import("..").EmailAddress;
fromNickName?: string | null;
to?: import("..").EmailAddresses | undefined;
bcc?: import("..").EmailAddresses | undefined;
cc?: import("..").EmailAddresses | undefined;
alias?: string;
connection?: {
[x: string]: string | number | undefined;
};
dateCreated?: number;
dateCreatedServerPretty?: string;
dateUpdated?: number;
dateUpdatedServerPretty?: string;
expiresAfter?: number;
expiresAfterIso?: string;
expiresAfterServerPretty?: string;
format?: {
[x: string]: string | number | {
[x: string]: string | undefined;
} | undefined;
};
height?: number | undefined | undefined;
key?: string;
mp4?: string;
vtt?: string;
captions?: string | undefined | undefined;
poster?: string;
browserStats?: {
ua?: string;
browser?: {
name?: string;
version?: string;
major?: string;
type?: typeof import("ua-parser-js/enums").BrowserType[keyof typeof import("ua-parser-js/enums").BrowserType];
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
withFeatureCheck?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
};
cpu?: {
architecture?: typeof import("ua-parser-js/enums").CPUArch[keyof typeof import("ua-parser-js/enums").CPUArch];
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
withFeatureCheck?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
};
device?: {
type?: typeof import("ua-parser-js/enums").DeviceType[keyof typeof import("ua-parser-js/enums").DeviceType];
vendor?: string;
model?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
withFeatureCheck?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
};
engine?: {
name?: typeof import("ua-parser-js/enums").EngineName[keyof typeof import("ua-parser-js/enums").EngineName];
version?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IEngine | PromiseLike<import("ua-parser-js").IEngine>;
withFeatureCheck?: () => import("ua-parser-js").IEngine | PromiseLike<import("ua-parser-js").IEngine>;
};
os?: {
name?: string;
version?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IOS | PromiseLike<import("ua-parser-js").IOS>;
withFeatureCheck?: () => import("ua-parser-js").IOS | PromiseLike<import("ua-parser-js").IOS>;
};
} | undefined;
recordingStats?: {
avgFps?: number | undefined | undefined;
avgInterval?: number | undefined | undefined;
framesCount?: number;
intervalSum?: number | undefined | undefined;
sampleRate?: number;
samplesCount?: number;
videoType?: string;
waitingTime?: number | undefined | undefined;
wantedFps?: number;
wantedInterval?: number;
} | undefined;
recordLocation?: string | undefined | undefined;
parentKey?: string | undefined | undefined;
parentSnapshots?: Videomail[] | undefined | undefined;
reactions?: {
love?: readonly string[];
applause?: readonly string[];
foldedHands?: readonly string[];
grinningSweat?: readonly string[];
anger?: readonly string[];
} | undefined;
reactionsPretty?: {
love?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
applause?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
foldedHands?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
grinningSweat?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
anger?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
} | undefined;
replyAllUrl?: string;
replyUrl?: string;
shareUrl?: string;
sending?: boolean;
sent?: boolean;
sentDate?: number;
sentDateIso?: string;
sentDateServerPretty?: string;
serverTimePretty?: string;
whitelistKey?: string;
siteName?: string | undefined | undefined;
url?: string;
userKey?: string | undefined;
versions?: {
videomailNinjaFormPlugin?: string;
videomailClient?: string;
};
webm?: string;
width?: number | undefined | undefined;
sentTo?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
sentCc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
sentBcc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedTo?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedCc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedBcc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
public?: boolean;
editUrl?: string;
repeatUrl?: string;
};
getRecipients(): {
subject?: string;
body?: string;
from?: import("..").EmailAddress;
fromNickName?: string | null;
to?: import("..").EmailAddresses | undefined;
bcc?: import("..").EmailAddresses | undefined;
cc?: import("..").EmailAddresses | undefined;
alias?: string;
connection?: {
[x: string]: string | number | undefined;
};
dateCreated?: number;
dateCreatedServerPretty?: string;
dateUpdated?: number;
dateUpdatedServerPretty?: string;
expiresAfter?: number;
expiresAfterIso?: string;
expiresAfterServerPretty?: string;
format?: {
[x: string]: string | number | {
[x: string]: string | undefined;
} | undefined;
};
height?: number | undefined | undefined;
key?: string;
mp4?: string;
vtt?: string;
captions?: string | undefined | undefined;
poster?: string;
browserStats?: {
ua?: string;
browser?: {
name?: string;
version?: string;
major?: string;
type?: typeof import("ua-parser-js/enums").BrowserType[keyof typeof import("ua-parser-js/enums").BrowserType];
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
withFeatureCheck?: () => import("ua-parser-js").IBrowser | PromiseLike<import("ua-parser-js").IBrowser>;
};
cpu?: {
architecture?: typeof import("ua-parser-js/enums").CPUArch[keyof typeof import("ua-parser-js/enums").CPUArch];
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
withFeatureCheck?: () => import("ua-parser-js").ICPU | PromiseLike<import("ua-parser-js").ICPU>;
};
device?: {
type?: typeof import("ua-parser-js/enums").DeviceType[keyof typeof import("ua-parser-js/enums").DeviceType];
vendor?: string;
model?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
withFeatureCheck?: () => import("ua-parser-js").IDevice | PromiseLike<import("ua-parser-js").IDevice>;
};
engine?: {
name?: typeof import("ua-parser-js/enums").EngineName[keyof typeof import("ua-parser-js/enums").EngineName];
version?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IEngine | PromiseLike<import("ua-parser-js").IEngine>;
withFeatureCheck?: () => import("ua-parser-js").IEngine | PromiseLike<import("ua-parser-js").IEngine>;
};
os?: {
name?: string;
version?: string;
is?: (val: string) => boolean;
toString?: () => string;
withClientHints?: () => import("ua-parser-js").IOS | PromiseLike<import("ua-parser-js").IOS>;
withFeatureCheck?: () => import("ua-parser-js").IOS | PromiseLike<import("ua-parser-js").IOS>;
};
} | undefined;
recordingStats?: {
avgFps?: number | undefined | undefined;
avgInterval?: number | undefined | undefined;
framesCount?: number;
intervalSum?: number | undefined | undefined;
sampleRate?: number;
samplesCount?: number;
videoType?: string;
waitingTime?: number | undefined | undefined;
wantedFps?: number;
wantedInterval?: number;
} | undefined;
recordLocation?: string | undefined | undefined;
parentKey?: string | undefined | undefined;
parentSnapshots?: Videomail[] | undefined | undefined;
reactions?: {
love?: readonly string[];
applause?: readonly string[];
foldedHands?: readonly string[];
grinningSweat?: readonly string[];
anger?: readonly string[];
} | undefined;
reactionsPretty?: {
love?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
applause?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
foldedHands?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
grinningSweat?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
anger?: {
[x: string]: {
nickName?: string;
maskedEmailAddress?: string;
} | undefined;
};
} | undefined;
replyAllUrl?: string;
replyUrl?: string;
shareUrl?: string;
sending?: boolean;
sent?: boolean;
sentDate?: number;
sentDateIso?: string;
sentDateServerPretty?: string;
serverTimePretty?: string;
whitelistKey?: string;
siteName?: string | undefined | undefined;
url?: string;
userKey?: string | undefined;
versions?: {
videomailNinjaFormPlugin?: string;
videomailClient?: string;
};
webm?: string;
width?: number | undefined | undefined;
sentTo?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
sentCc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
sentBcc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedTo?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedCc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
rejectedBcc?: {
[x: string]: {
userKey?: string | false;
} | undefined;
};
public?: boolean;
editUrl?: string;
repeatUrl?: string;
};
loadVideomail(videomail: Videomail): void;
private setDisabled;
private hideAll;
private isRegisteredFormField;
private getRegisteredFormElements;
disable(buttonsToo: boolean): void;
enable(buttonsToo: boolean): void;
build(): void;
private removeAllInputListeners;
private hideSubmitButton;
unload(): void;
private resetForm;
private startListeningToSubmitEvents;
private stopListeningToSubmitEvents;
doTheSubmit(e?: any): Promise<boolean>;
getInvalidElement(): Element | null;
findSubmitButton(): HTMLButtonElement | null;
hide(): void;
show(): void;
}
export default Form;