@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
71 lines • 3.99 kB
JavaScript
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=