UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

76 lines (75 loc) 2.19 kB
"use strict"; export function isMobile() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); } export function isIOS() { return /(iPad|iPhone|iPod)/g.test(navigator.userAgent); } export function isAndroid() { return /(Android)/g.test(navigator.userAgent); } export function isTouchDevice() { return isMobile() || isIOS() || isAndroid() || "ontouchstart" in globalThis || globalThis.DocumentTouch != null && document instanceof globalThis.DocumentTouch; } export function isChrome() { return navigator && navigator.userAgent != null && navigator.userAgent.indexOf("Chrome") != -1; } export function isSafari() { return /^((?!chrome|android).)*safari/i.test(navigator.userAgent); } export function isPortrait() { return globalThis.innerHeight > globalThis.innerWidth; } export function isLandscape() { return !isPortrait(); } export function screenOrientation() { var _a, _b; const windowOrientation = globalThis.orientation; if (windowOrientation != null) { return windowOrientation; } const screenAngle = ((_b = (_a = globalThis == null ? void 0 : globalThis.screen) == null ? void 0 : _a.orientation) == null ? void 0 : _b.angle) || 0; return screenAngle; } export class CoreUserAgent { static isChrome() { if (this._isChrome == null) { this._isChrome = isChrome(); } return this._isChrome; } static isSafari() { if (this._isSafari == null) { this._isSafari = isSafari(); } return this._isSafari; } static isMobile() { if (this._isMobile == null) { this._isMobile = isMobile(); } return this._isMobile; } static isiOS() { if (this._isiOS == null) { this._isiOS = isIOS(); } return this._isiOS; } static isAndroid() { if (this._isAndroid == null) { this._isAndroid = isAndroid(); } return this._isAndroid; } static isTouchDevice() { if (this._isTouchDevice == null) { this._isTouchDevice = isTouchDevice(); } return this._isTouchDevice; } } CoreUserAgent.isPortrait = isPortrait; CoreUserAgent.isLandscape = isLandscape; CoreUserAgent.screenOrientation = screenOrientation;