UNPKG

react-native-gesture-handler

Version:

Experimental implementation of a new declarative API for gesture handling in react-native

41 lines (35 loc) 1.34 kB
import { PointerType } from '../PointerType'; export function isPointerInBounds(view, { x, y }) { const rect = view.getBoundingClientRect(); return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom; } export const PointerTypeMapping = new Map([['mouse', PointerType.MOUSE], ['touch', PointerType.TOUCH], ['pen', PointerType.STYLUS], ['none', PointerType.OTHER]]); export const degToRad = degrees => degrees * Math.PI / 180; export const coneToDeviation = degrees => Math.cos(degToRad(degrees / 2)); export function calculateViewScale(view) { var _RegExp$exec; const styles = getComputedStyle(view); const resultScales = { scaleX: 1, scaleY: 1 }; const scales = styles.scale.split(' '); if (scales[0] !== 'none') { resultScales.scaleX = parseFloat(scales[0]); } if (scales[1]) { resultScales.scaleY = parseFloat(scales[1]); } const matrixElements = (_RegExp$exec = new RegExp(/matrix\((.+)\)/).exec(styles.transform)) === null || _RegExp$exec === void 0 ? void 0 : _RegExp$exec[1]; if (!matrixElements) { return resultScales; } const matrixElementsArray = matrixElements.split(', '); resultScales.scaleX *= parseFloat(matrixElementsArray[0]); resultScales.scaleY *= parseFloat(matrixElementsArray[3]); return resultScales; } //# sourceMappingURL=utils.js.map