UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

71 lines 3.99 kB
import { __awaiter } from "tslib"; /** * Check if an element is in fullscreen or not. * @returns `true` if `elem` is displayed in fullscreen. */ export function tgdFullscreenTest(element) { const root = document.fullscreenElement; if (!element || !root) return false; let parent = element.parentElement; while (parent) { if (parent === document.fullscreenElement) { return (root.clientWidth === element.clientWidth && root.clientHeight === element.clientHeight); } parent = parent.parentElement; } return document.fullscreenElement === element; } /** * Request for an element to go fullscreen. * @returns `true` in case of success. */ export function tgdFullscreenRequest(element, options) { return __awaiter(this, void 0, void 0, function* () { if (!element) return false; try { yield element.requestFullscreen(options !== null && options !== void 0 ? options : { navigationUI: "hide", }); return true; } catch (_a) { return false; } }); } /** * Exit fullscreen mode. * @returns `true` in case of success. */ export function tgdFullscreenExit() { return __awaiter(this, void 0, void 0, function* () { if (!document.fullscreenElement) return false; try { yield document.exitFullscreen(); return true; } catch (_a) { return false; } }); } /** * If `element` is not in fullscreen mode, request it. * Otherwise, exit from fullscreen mode. */ export function tgdFullscreenToggle(element, options) { return __awaiter(this, void 0, void 0, function* () { if (!element) return false; return tgdFullscreenTest(element) ? tgdFullscreenExit() : tgdFullscreenRequest(element, options !== null && options !== void 0 ? options : { navigationUI: "hide", }); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbHNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdWxsc2NyZWVuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBdUI7SUFDckQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFBO0lBQ3ZDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxLQUFLLENBQUE7SUFFbkMsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQTtJQUNsQyxPQUFPLE1BQU0sRUFBRSxDQUFDO1FBQ1osSUFBSSxNQUFNLEtBQUssUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEMsT0FBTyxDQUNILElBQUksQ0FBQyxXQUFXLEtBQUssT0FBTyxDQUFDLFdBQVc7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLEtBQUssT0FBTyxDQUFDLFlBQVksQ0FDN0MsQ0FBQTtRQUNMLENBQUM7UUFDRCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsaUJBQWlCLEtBQUssT0FBTyxDQUFBO0FBQ2pELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQWdCLG9CQUFvQixDQUN0QyxPQUF1QixFQUN2QixPQUEyQjs7UUFFM0IsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUUxQixJQUFJLENBQUM7WUFDRCxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsQ0FDM0IsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUk7Z0JBQ1AsWUFBWSxFQUFFLE1BQU07YUFDdkIsQ0FDSixDQUFBO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDZixDQUFDO1FBQUMsV0FBTSxDQUFDO1lBQ0wsT0FBTyxLQUFLLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUM7Q0FBQTtBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBZ0IsaUJBQWlCOztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtZQUFFLE9BQU8sS0FBSyxDQUFBO1FBRTdDLElBQUksQ0FBQztZQUNELE1BQU0sUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFBO1lBQy9CLE9BQU8sSUFBSSxDQUFBO1FBQ2YsQ0FBQztRQUFDLFdBQU0sQ0FBQztZQUNMLE9BQU8sS0FBSyxDQUFBO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0NBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQWdCLG1CQUFtQixDQUNyQyxPQUF1QixFQUN2QixPQUEyQjs7UUFFM0IsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUUxQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztZQUM3QixDQUFDLENBQUMsaUJBQWlCLEVBQUU7WUFDckIsQ0FBQyxDQUFDLG9CQUFvQixDQUNoQixPQUFPLEVBQ1AsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUk7Z0JBQ1AsWUFBWSxFQUFFLE1BQU07YUFDdkIsQ0FDSixDQUFBO0lBQ1gsQ0FBQztDQUFBIn0=