47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
"use strict";
|
|
|
|
exports.__esModule = true;
|
|
exports.getSupport = getSupport;
|
|
|
|
var _ssrWindow = require("ssr-window");
|
|
|
|
var support;
|
|
|
|
function calcSupport() {
|
|
var window = (0, _ssrWindow.getWindow)();
|
|
var document = (0, _ssrWindow.getDocument)();
|
|
return {
|
|
touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),
|
|
pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,
|
|
observer: function checkObserver() {
|
|
return 'MutationObserver' in window || 'WebkitMutationObserver' in window;
|
|
}(),
|
|
passiveListener: function checkPassiveListener() {
|
|
var supportsPassive = false;
|
|
|
|
try {
|
|
var opts = Object.defineProperty({}, 'passive', {
|
|
// eslint-disable-next-line
|
|
get: function get() {
|
|
supportsPassive = true;
|
|
}
|
|
});
|
|
window.addEventListener('testPassiveListener', null, opts);
|
|
} catch (e) {// No support
|
|
}
|
|
|
|
return supportsPassive;
|
|
}(),
|
|
gestures: function checkGestures() {
|
|
return 'ongesturestart' in window;
|
|
}()
|
|
};
|
|
}
|
|
|
|
function getSupport() {
|
|
if (!support) {
|
|
support = calcSupport();
|
|
}
|
|
|
|
return support;
|
|
} |