UNPKG

react-toolbox

Version:

A set of React components implementing Google's Material Design specification with the power of CSS Modules.

74 lines (66 loc) 2.36 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _keys = require('ramda/src/keys'); var _keys2 = _interopRequireDefault(_keys); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = { getMousePosition: function getMousePosition(event) { return { x: event.pageX - (window.scrollX || window.pageXOffset), y: event.pageY - (window.scrollY || window.pageYOffset) }; }, getTouchPosition: function getTouchPosition(event) { return { x: event.touches[0].pageX - (window.scrollX || window.pageXOffset), y: event.touches[0].pageY - (window.scrollY || window.pageYOffset) }; }, pauseEvent: function pauseEvent(event) { event.stopPropagation(); event.preventDefault(); }, addEventsToDocument: function addEventsToDocument(eventMap) { Object.keys(eventMap).forEach(function (key) { document.addEventListener(key, eventMap[key], false); }); }, removeEventsFromDocument: function removeEventsFromDocument(eventMap) { Object.keys(eventMap).forEach(function (key) { document.removeEventListener(key, eventMap[key], false); }); }, targetIsDescendant: function targetIsDescendant(event, parent) { var node = event.target; while (node !== null) { if (node === parent) return true; node = node.parentNode; } return false; }, addEventListenerOnTransitionEnded: function addEventListenerOnTransitionEnded(element, fn) { var eventName = transitionEventNamesFor(element); if (!eventName) return false; element.addEventListener(eventName, fn); return true; }, removeEventListenerOnTransitionEnded: function removeEventListenerOnTransitionEnded(element, fn) { var eventName = transitionEventNamesFor(element); if (!eventName) return false; element.removeEventListener(eventName, fn); return true; } }; var TRANSITIONS = { transition: 'transitionend', OTransition: 'oTransitionEnd', MozTransition: 'transitionend', WebkitTransition: 'webkitTransitionEnd' }; function transitionEventNamesFor(element) { return (0, _keys2.default)(TRANSITIONS).reduce(function (result, transition) { return !result && element && element.style[transition] !== undefined ? TRANSITIONS[transition] : result; }, null); }