infinity-forge
Version:
123 lines (122 loc) • 3.49 kB
TypeScript
type PandaVideoConfigurations = {
color?: string;
controlsColor?: string;
controls?: 'play-large' | 'play' | 'progress' | 'current-time' | 'volume' | 'captions' | 'settings' | 'pip' | 'fullscreen'[];
autoplay?: boolean;
muted?: boolean;
saveProgress?: boolean;
thumbnail?: string;
preload?: boolean;
mutedIndicatorIcon?: boolean;
mutedIndicatorTextTop?: string;
mutedIndicatorTextBottom?: string;
title?: string;
watermark?: string;
alternativeProgress?: boolean;
alternativeProgress2xLimit?: number;
alternativeProgressVelocity?: number;
alternativeProgressHeight?: number;
saveProgressTitle?: string;
saveProgressBackgroundOpacity?: number;
saveProgressButton1Title?: string;
saveProgressButton2Title?: string;
hideControlsOnStart?: boolean;
restartAfterEnd?: boolean;
troubleshootDialog?: boolean;
disableForward?: boolean;
playOpensFullscreen?: boolean;
availableSpeeds?: '0.5' | '0.75' | '1' | '1.25' | '1.5' | '2';
defaultSpeed?: number;
captionsFontSize?: number;
smartAutoplay?: boolean;
};
type PandaVideoPlayer = {
appendParentUrlOnOutsideCtas?: boolean;
audio?: boolean;
callbacks?: Array<() => void>;
captions?: {
active?: boolean;
currentTrack?: number;
meta?: Record<string, unknown>;
toggled?: boolean;
language?: string;
};
captureMessage?: (e: any) => void;
colors?: {
primaryColor?: string;
captionsColor?: string;
captionsBackgroundColor?: string;
controlsColor?: string;
menuColor?: string;
};
comparison_id?: string;
currentTime?: number;
duration?: number;
element_id?: string;
fullscreen?: boolean;
iframe?: Window;
library_id?: string;
live_id?: string;
muted?: boolean;
onError?: (error: any) => void;
onReady?: () => void;
outsideCtas?: any;
paused?: boolean;
pip?: boolean;
ready?: boolean;
speed?: {
selected?: number;
options?: number[];
turbo?: number;
};
video_external_id?: string;
video_height?: string;
video_hls?: string;
video_width?: string;
volume?: number;
_callbackQueue?: Array<any>;
_receivedEventsQueue?: Array<any>;
};
type PandaVideoEvent = {
message: string;
video: string;
playerData: {
captions: {
active: boolean;
currentTrack: number;
meta: {};
toggled: boolean;
language: string;
};
colors: {
primaryColor: string;
captionsColor: string;
captionsBackgroundColor: string;
controlsColor: string;
menuColor: string;
};
currentTime: number;
duration: number;
fullscreen: boolean;
hasAudio: boolean;
muted: boolean;
paused: boolean;
pip: boolean;
speed: {
selected: number;
options: number[];
turbo: number;
};
volume: number;
video: string;
};
};
interface PandaPlayerProps {
onEvent?: (event: PandaVideoEvent) => void;
onReady?: (event: PandaVideoPlayer) => void;
onError?: (error: any) => void;
videoId?: string;
videoURL?: string;
configurations?: PandaVideoConfigurations;
}
export type { PandaPlayerProps, PandaVideoEvent, PandaVideoPlayer, PandaVideoConfigurations };