@vkontakte/vkjs
Advanced tools
Comparing version 0.4.0 to 0.5.0
@@ -16,5 +16,6 @@ import { isIOS, isIPadOS } from './IOSDetections'; | ||
if (hasTouchEvents) { | ||
hasMouse = window.matchMedia && matchMedia('(pointer)').matches ? matchMedia('(pointer: fine)').matches : /android|mobile|tablet/i.test(navigator.userAgent); | ||
hasHover = hasMouse && (window.matchMedia && matchMedia('(hover)').matches ? matchMedia('(hover: hover)').matches : false); | ||
if (hasTouch) { | ||
var notMobile = !/android|mobile|tablet/i.test(navigator.userAgent); | ||
hasMouse = window.matchMedia && matchMedia('(pointer)').matches ? matchMedia('(pointer: fine)').matches : notMobile; | ||
hasHover = hasMouse && (window.matchMedia && matchMedia('(hover)').matches ? matchMedia('(hover: hover)').matches : notMobile); | ||
} else { | ||
@@ -21,0 +22,0 @@ hasMouse = true; |
@@ -0,1 +1,2 @@ | ||
import { canUseDOM } from './dom'; | ||
export var IPHONE_SAFARI_BOTTOM_BAR = 45; | ||
@@ -6,25 +7,60 @@ export var IPHONE_X_SAFARI_BOTTOM_BAR = 85; | ||
export var IOS_NO_KEYBOARD_ALLOWED_OFFSET = 70; | ||
var ua = navigator.userAgent.toLowerCase(); | ||
var isIPadOS = checkIPadOS(ua); | ||
var isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
var isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
var isIOS = isIPhone || isIPad; | ||
var iosVersion = isIOS && navigator.userAgent.match(/OS ([\d_]+) like Mac OS X/i); | ||
var iosMajor = 0; | ||
var iosMinor = 0; | ||
export function detectIOS(ua) { | ||
if (!ua) { | ||
ua = canUseDOM ? navigator.userAgent.toLowerCase() : ''; | ||
} | ||
if (isIPadOS) { | ||
iosMajor = 13; | ||
iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
iosMajor = +iosVersion[0]; | ||
iosMinor = +iosVersion[1]; | ||
var isIPadOS = checkIPadOS(ua); | ||
var isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
var isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
var isIOS = isIPhone || isIPad; | ||
var iosVersion = isIOS && ua.match(/OS ([\d_]+) like Mac OS X/i); | ||
var iosMajor = 0; | ||
var iosMinor = 0; | ||
if (isIPadOS) { | ||
iosMajor = 13; | ||
iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
iosMajor = +iosVersion[0]; | ||
iosMinor = +iosVersion[1]; | ||
} | ||
iosVersion = null; | ||
var isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
var isWKWebView = isIOS && checkWKWebView(ua); | ||
var isIPhoneX = false; | ||
if (canUseDOM) { | ||
isIPhoneX = isIOS && screen.width === 375 && screen.height === 812 && window.devicePixelRatio === 3; | ||
} | ||
var isIOSChrome = ua.search(/crios/i) !== -1; | ||
return { | ||
isIPad: isIPad, | ||
isIPhone: isIPhone, | ||
isIOS: isIOS, | ||
isIPadOS: isIPadOS, | ||
iosMajor: iosMajor, | ||
iosMinor: iosMinor, | ||
isWKWebView: isWKWebView, | ||
isScrollBasedViewport: isScrollBasedViewport, | ||
isIPhoneX: isIPhoneX, | ||
isIOSChrome: isIOSChrome | ||
}; | ||
} | ||
iosVersion = null; | ||
var isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
var isWKWebView = isIOS && checkWKWebView(ua); | ||
var isIPhoneX = isIOS && screen.width === 375 && screen.height === 812 && window.devicePixelRatio === 3; | ||
var isIOSChrome = ua.search(/crios/i) !== -1; | ||
var _detectIOS = detectIOS(), | ||
isIPad = _detectIOS.isIPad, | ||
isIPhone = _detectIOS.isIPhone, | ||
isIOS = _detectIOS.isIOS, | ||
isIPadOS = _detectIOS.isIPadOS, | ||
iosMajor = _detectIOS.iosMajor, | ||
iosMinor = _detectIOS.iosMinor, | ||
isWKWebView = _detectIOS.isWKWebView, | ||
isScrollBasedViewport = _detectIOS.isScrollBasedViewport, | ||
isIPhoneX = _detectIOS.isIPhoneX, | ||
isIOSChrome = _detectIOS.isIOSChrome; | ||
export { isIPad, isIPhone, isIOS, isIPadOS, iosMajor, iosMinor, isWKWebView, isScrollBasedViewport, isIPhoneX, isIOSChrome }; | ||
@@ -37,2 +73,6 @@ export function isLandscapePhone() { | ||
function checkWKWebView(ua) { | ||
if (!canUseDOM) { | ||
return false; | ||
} | ||
var webkit = window.webkit; | ||
@@ -58,2 +98,6 @@ | ||
export function checkIPadOS(ua) { | ||
if (!canUseDOM) { | ||
return false; | ||
} | ||
var notIOS = !/ipad|iphone|ipod/.test(ua); | ||
@@ -60,0 +104,0 @@ var macOS = /mac os/.test(ua); |
@@ -28,5 +28,6 @@ "use strict"; | ||
if (hasTouchEvents) { | ||
exports.hasMouse = hasMouse = window.matchMedia && matchMedia('(pointer)').matches ? matchMedia('(pointer: fine)').matches : /android|mobile|tablet/i.test(navigator.userAgent); | ||
exports.hasHover = hasHover = hasMouse && (window.matchMedia && matchMedia('(hover)').matches ? matchMedia('(hover: hover)').matches : false); | ||
if (hasTouch) { | ||
var notMobile = !/android|mobile|tablet/i.test(navigator.userAgent); | ||
exports.hasMouse = hasMouse = window.matchMedia && matchMedia('(pointer)').matches ? matchMedia('(pointer: fine)').matches : notMobile; | ||
exports.hasHover = hasHover = hasMouse && (window.matchMedia && matchMedia('(hover)').matches ? matchMedia('(hover: hover)').matches : notMobile); | ||
} else { | ||
@@ -33,0 +34,0 @@ exports.hasMouse = hasMouse = true; |
@@ -5,14 +5,17 @@ export declare const IPHONE_SAFARI_BOTTOM_BAR = 45; | ||
export declare const IOS_NO_KEYBOARD_ALLOWED_OFFSET = 70; | ||
declare const isIPadOS: boolean; | ||
declare const isIPad: boolean; | ||
declare const isIPhone: boolean; | ||
declare const isIOS: boolean; | ||
declare let iosMajor: number; | ||
declare let iosMinor: number; | ||
declare const isScrollBasedViewport: boolean; | ||
declare const isWKWebView: boolean; | ||
declare const isIPhoneX: boolean; | ||
declare const isIOSChrome: boolean; | ||
export declare function detectIOS(ua?: string): { | ||
isIPad: boolean; | ||
isIPhone: boolean; | ||
isIOS: boolean; | ||
isIPadOS: boolean; | ||
iosMajor: number; | ||
iosMinor: number; | ||
isWKWebView: boolean; | ||
isScrollBasedViewport: boolean; | ||
isIPhoneX: boolean; | ||
isIOSChrome: boolean; | ||
}; | ||
declare const isIPad: boolean, isIPhone: boolean, isIOS: boolean, isIPadOS: boolean, iosMajor: number, iosMinor: number, isWKWebView: boolean, isScrollBasedViewport: boolean, isIPhoneX: boolean, isIOSChrome: boolean; | ||
export { isIPad, isIPhone, isIOS, isIPadOS, iosMajor, iosMinor, isWKWebView, isScrollBasedViewport, isIPhoneX, isIOSChrome, }; | ||
export declare function isLandscapePhone(): boolean; | ||
export declare function checkIPadOS(ua: string): boolean; |
@@ -6,5 +6,9 @@ "use strict"; | ||
}); | ||
exports.detectIOS = detectIOS; | ||
exports.isLandscapePhone = isLandscapePhone; | ||
exports.checkIPadOS = checkIPadOS; | ||
exports.isIOSChrome = exports.isIPhoneX = exports.isScrollBasedViewport = exports.isWKWebView = exports.iosMinor = exports.iosMajor = exports.isIPadOS = exports.isIOS = exports.isIPhone = exports.isIPad = exports.IOS_NO_KEYBOARD_ALLOWED_OFFSET = exports.IPHONE_KEYBOARD_REJECT_OFFSET = exports.IPHONE_X_SAFARI_BOTTOM_BAR = exports.IPHONE_SAFARI_BOTTOM_BAR = void 0; | ||
var _dom = require("./dom"); | ||
var IPHONE_SAFARI_BOTTOM_BAR = 45; | ||
@@ -19,35 +23,71 @@ exports.IPHONE_SAFARI_BOTTOM_BAR = IPHONE_SAFARI_BOTTOM_BAR; | ||
exports.IOS_NO_KEYBOARD_ALLOWED_OFFSET = IOS_NO_KEYBOARD_ALLOWED_OFFSET; | ||
var ua = navigator.userAgent.toLowerCase(); | ||
var isIPadOS = checkIPadOS(ua); | ||
exports.isIPadOS = isIPadOS; | ||
var isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
exports.isIPad = isIPad; | ||
var isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
exports.isIPhone = isIPhone; | ||
var isIOS = isIPhone || isIPad; | ||
exports.isIOS = isIOS; | ||
var iosVersion = isIOS && navigator.userAgent.match(/OS ([\d_]+) like Mac OS X/i); | ||
var iosMajor = 0; | ||
exports.iosMajor = iosMajor; | ||
var iosMinor = 0; | ||
exports.iosMinor = iosMinor; | ||
if (isIPadOS) { | ||
exports.iosMajor = iosMajor = 13; | ||
exports.iosMinor = iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
exports.iosMajor = iosMajor = +iosVersion[0]; | ||
exports.iosMinor = iosMinor = +iosVersion[1]; | ||
function detectIOS(ua) { | ||
if (!ua) { | ||
ua = _dom.canUseDOM ? navigator.userAgent.toLowerCase() : ''; | ||
} | ||
var isIPadOS = checkIPadOS(ua); | ||
var isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
var isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
var isIOS = isIPhone || isIPad; | ||
var iosVersion = isIOS && ua.match(/OS ([\d_]+) like Mac OS X/i); | ||
var iosMajor = 0; | ||
var iosMinor = 0; | ||
if (isIPadOS) { | ||
iosMajor = 13; | ||
iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
iosMajor = +iosVersion[0]; | ||
iosMinor = +iosVersion[1]; | ||
} | ||
iosVersion = null; | ||
var isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
var isWKWebView = isIOS && checkWKWebView(ua); | ||
var isIPhoneX = false; | ||
if (_dom.canUseDOM) { | ||
isIPhoneX = isIOS && screen.width === 375 && screen.height === 812 && window.devicePixelRatio === 3; | ||
} | ||
var isIOSChrome = ua.search(/crios/i) !== -1; | ||
return { | ||
isIPad: isIPad, | ||
isIPhone: isIPhone, | ||
isIOS: isIOS, | ||
isIPadOS: isIPadOS, | ||
iosMajor: iosMajor, | ||
iosMinor: iosMinor, | ||
isWKWebView: isWKWebView, | ||
isScrollBasedViewport: isScrollBasedViewport, | ||
isIPhoneX: isIPhoneX, | ||
isIOSChrome: isIOSChrome | ||
}; | ||
} | ||
iosVersion = null; | ||
var isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
var _detectIOS = detectIOS(), | ||
isIPad = _detectIOS.isIPad, | ||
isIPhone = _detectIOS.isIPhone, | ||
isIOS = _detectIOS.isIOS, | ||
isIPadOS = _detectIOS.isIPadOS, | ||
iosMajor = _detectIOS.iosMajor, | ||
iosMinor = _detectIOS.iosMinor, | ||
isWKWebView = _detectIOS.isWKWebView, | ||
isScrollBasedViewport = _detectIOS.isScrollBasedViewport, | ||
isIPhoneX = _detectIOS.isIPhoneX, | ||
isIOSChrome = _detectIOS.isIOSChrome; | ||
exports.isIOSChrome = isIOSChrome; | ||
exports.isIPhoneX = isIPhoneX; | ||
exports.isScrollBasedViewport = isScrollBasedViewport; | ||
var isWKWebView = isIOS && checkWKWebView(ua); | ||
exports.isWKWebView = isWKWebView; | ||
var isIPhoneX = isIOS && screen.width === 375 && screen.height === 812 && window.devicePixelRatio === 3; | ||
exports.isIPhoneX = isIPhoneX; | ||
var isIOSChrome = ua.search(/crios/i) !== -1; | ||
exports.isIOSChrome = isIOSChrome; | ||
exports.iosMinor = iosMinor; | ||
exports.iosMajor = iosMajor; | ||
exports.isIPadOS = isIPadOS; | ||
exports.isIOS = isIOS; | ||
exports.isIPhone = isIPhone; | ||
exports.isIPad = isIPad; | ||
@@ -61,2 +101,6 @@ function isLandscapePhone() { | ||
function checkWKWebView(ua) { | ||
if (!_dom.canUseDOM) { | ||
return false; | ||
} | ||
var webkit = window.webkit; | ||
@@ -82,2 +126,6 @@ | ||
function checkIPadOS(ua) { | ||
if (!_dom.canUseDOM) { | ||
return false; | ||
} | ||
var notIOS = !/ipad|iphone|ipod/.test(ua); | ||
@@ -84,0 +132,0 @@ var macOS = /mac os/.test(ua); |
{ | ||
"name": "@vkontakte/vkjs", | ||
"version": "0.4.0", | ||
"version": "0.5.0", | ||
"description": "VK shared JS libs", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
@@ -18,9 +18,10 @@ import { isIOS, isIPadOS } from './IOSDetections'; | ||
if (hasTouchEvents) { | ||
if (hasTouch) { | ||
const notMobile = !/android|mobile|tablet/i.test(navigator.userAgent); | ||
hasMouse = window.matchMedia && matchMedia('(pointer)').matches ? | ||
matchMedia('(pointer: fine)').matches : | ||
/android|mobile|tablet/i.test(navigator.userAgent); | ||
matchMedia('(pointer: fine)').matches : notMobile; | ||
hasHover = hasMouse && (window.matchMedia && matchMedia('(hover)').matches ? | ||
matchMedia('(hover: hover)').matches : false); | ||
matchMedia('(hover: hover)').matches : notMobile); | ||
} else { | ||
@@ -27,0 +28,0 @@ hasMouse = true; |
@@ -0,1 +1,3 @@ | ||
import { canUseDOM } from './dom'; | ||
export const IPHONE_SAFARI_BOTTOM_BAR = 45; | ||
@@ -9,31 +11,56 @@ export const IPHONE_X_SAFARI_BOTTOM_BAR = 85; | ||
const ua = navigator.userAgent.toLowerCase(); | ||
const isIPadOS = checkIPadOS(ua); | ||
const isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
const isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
const isIOS = isIPhone || isIPad; | ||
export function detectIOS(ua?: string) { | ||
if (!ua) { | ||
ua = canUseDOM ? navigator.userAgent.toLowerCase() : ''; | ||
} | ||
let iosVersion = isIOS && navigator.userAgent.match(/OS ([\d_]+) like Mac OS X/i); | ||
let iosMajor = 0; | ||
let iosMinor = 0; | ||
const isIPadOS = checkIPadOS(ua); | ||
const isIPad = isIPadOS || ua.indexOf('ipad') !== -1; | ||
const isIPhone = !isIPad && ua.search(/iphone|ipod/) !== -1; | ||
const isIOS = isIPhone || isIPad; | ||
if (isIPadOS) { | ||
iosMajor = 13; | ||
iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
iosMajor = +iosVersion[0]; | ||
iosMinor = +iosVersion[1]; | ||
} | ||
let iosVersion = isIOS && ua.match(/OS ([\d_]+) like Mac OS X/i); | ||
let iosMajor = 0; | ||
let iosMinor = 0; | ||
iosVersion = null; | ||
if (isIPadOS) { | ||
iosMajor = 13; | ||
iosMinor = 0; | ||
} else if (iosVersion) { | ||
iosVersion = iosVersion[1].split('_'); | ||
iosMajor = +iosVersion[0]; | ||
iosMinor = +iosVersion[1]; | ||
} | ||
const isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
const isWKWebView = isIOS && checkWKWebView(ua); | ||
iosVersion = null; | ||
const isIPhoneX = isIOS && screen.width === 375 && | ||
screen.height === 812 && window.devicePixelRatio === 3; | ||
const isScrollBasedViewport = iosMajor < 13 && !(iosMajor === 11 && iosMinor < 3); | ||
const isWKWebView = isIOS && checkWKWebView(ua); | ||
const isIOSChrome = ua.search(/crios/i) !== -1; | ||
let isIPhoneX = false; | ||
if (canUseDOM) { | ||
isIPhoneX = isIOS && screen.width === 375 && | ||
screen.height === 812 && window.devicePixelRatio === 3; | ||
} | ||
const isIOSChrome = ua.search(/crios/i) !== -1; | ||
return { | ||
isIPad, isIPhone, isIOS, isIPadOS, | ||
iosMajor, iosMinor, | ||
isWKWebView, isScrollBasedViewport, | ||
isIPhoneX, | ||
isIOSChrome, | ||
}; | ||
} | ||
const { | ||
isIPad, isIPhone, isIOS, isIPadOS, | ||
iosMajor, iosMinor, | ||
isWKWebView, isScrollBasedViewport, | ||
isIPhoneX, | ||
isIOSChrome, | ||
} = detectIOS(); | ||
export { | ||
@@ -54,2 +81,6 @@ isIPad, isIPhone, isIOS, isIPadOS, | ||
function checkWKWebView(ua: string) { | ||
if (!canUseDOM) { | ||
return false; | ||
} | ||
const webkit = (window as any).webkit; | ||
@@ -81,2 +112,6 @@ | ||
export function checkIPadOS(ua: string) { | ||
if (!canUseDOM) { | ||
return false; | ||
} | ||
const notIOS = !/ipad|iphone|ipod/.test(ua); | ||
@@ -83,0 +118,0 @@ const macOS = /mac os/.test(ua); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
110406
83
1504