UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

70 lines (59 loc) 2.33 kB
"use strict"; var inArray = require("./array").inArray, domAdapter = require("../dom_adapter"), callOnce = require("./call_once"), windowUtils = require("./window"), navigator = windowUtils.getNavigator(), devices = require("../devices"), styleUtils = require("./style"); var transitionEndEventNames = { 'webkitTransition': 'webkitTransitionEnd', 'MozTransition': 'transitionend', 'OTransition': 'oTransitionEnd', 'msTransition': 'MsTransitionEnd', 'transition': 'transitionend' }; var supportProp = function supportProp(prop) { return !!styleUtils.styleProp(prop); }; var isNativeScrollingSupported = function isNativeScrollingSupported() { var realDevice = devices.real(), realPlatform = realDevice.platform, realVersion = realDevice.version, isObsoleteAndroid = realVersion && realVersion[0] < 4 && realPlatform === "android", isNativeScrollDevice = !isObsoleteAndroid && inArray(realPlatform, ["ios", "android", "win"]) > -1 || realDevice.mac; return isNativeScrollDevice; }; var inputType = function inputType(type) { if (type === "text") { return true; } var input = domAdapter.createElement("input"); try { input.setAttribute("type", type); input.value = "wrongValue"; return !input.value; } catch (e) { return false; } }; var touchEvents = windowUtils.hasProperty("ontouchstart") && !windowUtils.hasProperty("callPhantom"), pointerEvents = !!navigator.pointerEnabled || !!navigator.msPointerEnabled, touchPointersPresent = !!navigator.maxTouchPoints || !!navigator.msMaxTouchPoints; exports.touchEvents = touchEvents; exports.pointerEvents = pointerEvents; exports.touch = touchEvents || pointerEvents && touchPointersPresent; exports.transition = callOnce(function () { return supportProp("transition"); }); exports.transitionEndEventName = callOnce(function () { return transitionEndEventNames[styleUtils.styleProp("transition")]; }); exports.animation = callOnce(function () { return supportProp("animation"); }); exports.nativeScrolling = isNativeScrollingSupported(); exports.styleProp = styleUtils.styleProp; exports.stylePropPrefix = styleUtils.stylePropPrefix; exports.supportProp = supportProp; exports.inputType = inputType;