native-fn
Version:
45 lines (44 loc) • 1.86 kB
TypeScript
declare global {
interface HTMLVideoElement {
webkitEnterFullscreen?: () => void;
webkitExitFullscreen?: () => void;
webkitSupportsFullscreen?: boolean;
webkitDisplayingFullscreen?: boolean;
__fsBridged__?: boolean;
}
interface Document {
readonly fullscreenEnabled: boolean;
fullscreenElement?: Element | null;
exitFullscreen: () => Promise<void>;
readonly webkitFullscreenEnabled?: boolean;
webkitFullscreenElement?: Element | null;
webkitCurrentFullScreenElement?: Element | null;
webkitExitFullscreen?: () => Promise<void>;
webkitCancelFullScreen?: () => Promise<void>;
readonly mozFullScreenEnabled?: boolean;
mozFullScreenElement?: Element | null;
mozCancelFullScreen?: () => Promise<void>;
readonly msFullscreenEnabled?: boolean;
msFullscreenElement?: Element | null;
msExitFullscreen?: () => Promise<void>;
}
interface Element {
requestFullscreen: (options?: FullscreenOptions) => Promise<void>;
webkitRequestFullscreen?: (options?: FullscreenOptions) => Promise<void>;
webkitRequestFullScreen?: (options?: FullscreenOptions) => Promise<void>;
mozRequestFullScreen?: () => Promise<void>;
msRequestFullscreen?: () => Promise<void>;
}
}
interface FullscreenUtils {
enabled: boolean;
element: Element | null;
isFullscreen: boolean;
request: (target: Element, options?: FullscreenOptions) => Promise<void>;
exit: () => Promise<void>;
toggle: (target: Element, options?: FullscreenOptions) => Promise<void>;
onChange: (handler: (event: Event) => void) => () => void;
onError: (handler: (event: Event) => void) => () => void;
}
export declare const FullscreenUtils: FullscreenUtils;
export default FullscreenUtils;