UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

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