import { isFunction } from "@videojs/utils/predicate"; //#region src/dom/presentation/fullscreen.ts function isFullscreenEnabled() { const doc = document; if (doc.fullscreenEnabled || doc.webkitFullscreenEnabled) return true; return isFunction(document.createElement("video").webkitSetPresentationMode); } function getFullscreenElement() { const doc = document; return doc.fullscreenElement ?? doc.webkitFullscreenElement ?? null; } function matchesFullscreen(element) { if (!(element instanceof Element)) return false; try { return element.matches(":fullscreen"); } catch { return false; } } function isFullscreen(container, media) { if (media.webkitPresentationMode === "fullscreen") return true; const fullscreenElement = getFullscreenElement(); if (fullscreenElement && (fullscreenElement === container || fullscreenElement === media)) return true; if (matchesFullscreen(container) || matchesFullscreen(media)) return true; return media.isFullscreen ?? false; } async function requestFullscreen(container, media) { const doc = document; if (container && (doc.fullscreenEnabled || doc.webkitFullscreenEnabled)) { const el = container; if (isFunction(el.requestFullscreen)) return el.requestFullscreen(); if (isFunction(el.webkitRequestFullscreen)) return el.webkitRequestFullscreen(); } const webkitVideo = media; if (isFunction(webkitVideo.webkitSetPresentationMode)) { webkitVideo.webkitSetPresentationMode("fullscreen"); return; } const video = media; if (isFunction(video.requestFullscreen)) return video.requestFullscreen(); } async function exitFullscreen(media) { const doc = document; const webkitVideo = media; if (webkitVideo.webkitPresentationMode === "fullscreen" && isFunction(webkitVideo.webkitSetPresentationMode)) { webkitVideo.webkitSetPresentationMode("inline"); return; } if (isFunction(doc.exitFullscreen)) return doc.exitFullscreen(); if (isFunction(doc.webkitExitFullscreen)) return doc.webkitExitFullscreen(); const video = media; if (isFunction(video.exitFullscreen)) return video.exitFullscreen(); } //#endregion export { exitFullscreen, getFullscreenElement, isFullscreen, isFullscreenEnabled, requestFullscreen }; //# sourceMappingURL=fullscreen.js.map