@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
76 lines (75 loc) • 2.19 kB
JavaScript
;
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;