UNPKG

modern-api.fullscreen

Version:
70 lines (66 loc) 1.88 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); // index.ts var getPrefix = () => { if (document.fullscreenEnabled) return ""; if (document.webkitFullscreenEnabled) return "webkit"; if (document.mozFullScreenEnabled) return "moz"; if (document.msFullscreenEnabled) return "ms"; }; var fullscreenSupported = typeof getPrefix() === "string"; var fullscreenElement = () => { const prefix = getPrefix(); if (prefix === void 0) return null; if (prefix === "") return document.fullscreenElement; if (prefix === "moz") { return document.mozFullScreenElement; } return document[`${prefix}FullscreenElement`]; }; var requestFullscreen = (el) => { const prefix = getPrefix(); return new Promise((resolve) => { if (prefix === void 0) return resolve(void 0); if (prefix === "") return el.requestFullscreen().then(resolve); return el[`${prefix}RequestFullscreen`]().then(resolve); }); }; var exitFullscreen = () => { const prefix = getPrefix(); return new Promise((resolve) => { if (prefix === void 0) return resolve(void 0); if (prefix === "") return document.exitFullscreen().then(resolve); return document[`${prefix}ExitFullscreen`]().then(resolve); }); }; var onFullscreen = ({ onScreen, onExit, onError }) => { const prefix = getPrefix(); if (prefix === void 0) return; if (onScreen || onExit) { document[`on${prefix}fullscreenchange`] = (e) => { fullscreenElement() ? onScreen && onScreen(e) : onExit && onExit(e); }; } if (onError) document[`on${prefix}fullscreenerror`] = onError; }; exports.exitFullscreen = exitFullscreen; exports.fullscreenElement = fullscreenElement; exports.fullscreenSupported = fullscreenSupported; exports.onFullscreen = onFullscreen; exports.requestFullscreen = requestFullscreen;