UNPKG

rs-react-native-image-gallery

Version:
32 lines 4.18 kB
/** * Calculate squared distance between two points * @param a First coordinate * @param b Second coordinate */ export var pow2abs = function (a, b) { return Math.pow((a - b), 2); }; /** * Get distance between two touch points * @param touches Array of touch events */ export var getDistance = function (touches) { // Early validation if (!touches || touches.length < 2) return 0; var a = touches[0], b = touches[1]; // Null check with optional chaining if (!(a === null || a === void 0 ? void 0 : a.pageX) || !(b === null || b === void 0 ? void 0 : b.pageX) || !(a === null || a === void 0 ? void 0 : a.pageY) || !(b === null || b === void 0 ? void 0 : b.pageY)) return 0; return Math.sqrt(pow2abs(a.pageX, b.pageX) + pow2abs(a.pageY, b.pageY)); }; /** * Calculate scale based on distance ratio with a multiplier * @param currentDistance Current distance between touch points * @param initialDistance Initial distance between touch points */ export var getScale = function (currentDistance, initialDistance) { // Prevent division by zero if (!initialDistance) return 1; return (currentDistance / initialDistance) * 1.2; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvX2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLE9BQU8sR0FBRyxVQUFDLENBQVMsRUFBRSxDQUFTLElBQWEsT0FBQSxTQUFBLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFJLENBQUMsQ0FBQSxFQUFaLENBQVksQ0FBQztBQUV0RTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsVUFBQyxPQUFnQztJQUMzRCxtQkFBbUI7SUFDbkIsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7UUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0QyxJQUFBLENBQUMsR0FBTyxPQUFPLEdBQWQsRUFBRSxDQUFDLEdBQUksT0FBTyxHQUFYLENBQVk7SUFFdkIsb0NBQW9DO0lBQ3BDLElBQUksQ0FBQyxDQUFBLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxLQUFLLENBQUEsSUFBSSxDQUFDLENBQUEsQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFFLEtBQUssQ0FBQSxJQUFJLENBQUMsQ0FBQSxDQUFDLGFBQUQsQ0FBQyx1QkFBRCxDQUFDLENBQUUsS0FBSyxDQUFBLElBQUksQ0FBQyxDQUFBLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxLQUFLLENBQUE7UUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsSUFBTSxRQUFRLEdBQUcsVUFBQyxlQUF1QixFQUFFLGVBQXVCO0lBQ3hFLDJCQUEyQjtJQUMzQixJQUFJLENBQUMsZUFBZTtRQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9CLE9BQU8sQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ2xELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5hdGl2ZVRvdWNoRXZlbnQgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuXG4vKipcbiAqIENhbGN1bGF0ZSBzcXVhcmVkIGRpc3RhbmNlIGJldHdlZW4gdHdvIHBvaW50c1xuICogQHBhcmFtIGEgRmlyc3QgY29vcmRpbmF0ZVxuICogQHBhcmFtIGIgU2Vjb25kIGNvb3JkaW5hdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHBvdzJhYnMgPSAoYTogbnVtYmVyLCBiOiBudW1iZXIpOiBudW1iZXIgPT4gKGEgLSBiKSAqKiAyO1xuXG4vKipcbiAqIEdldCBkaXN0YW5jZSBiZXR3ZWVuIHR3byB0b3VjaCBwb2ludHNcbiAqIEBwYXJhbSB0b3VjaGVzIEFycmF5IG9mIHRvdWNoIGV2ZW50c1xuICovXG5leHBvcnQgY29uc3QgZ2V0RGlzdGFuY2UgPSAodG91Y2hlczogQXJyYXk8TmF0aXZlVG91Y2hFdmVudD4pOiBudW1iZXIgPT4ge1xuXHQvLyBFYXJseSB2YWxpZGF0aW9uXG5cdGlmICghdG91Y2hlcyB8fCB0b3VjaGVzLmxlbmd0aCA8IDIpIHJldHVybiAwO1xuXG5cdGNvbnN0IFthLCBiXSA9IHRvdWNoZXM7XG5cblx0Ly8gTnVsbCBjaGVjayB3aXRoIG9wdGlvbmFsIGNoYWluaW5nXG5cdGlmICghYT8ucGFnZVggfHwgIWI/LnBhZ2VYIHx8ICFhPy5wYWdlWSB8fCAhYj8ucGFnZVkpIHJldHVybiAwO1xuXG5cdHJldHVybiBNYXRoLnNxcnQocG93MmFicyhhLnBhZ2VYLCBiLnBhZ2VYKSArIHBvdzJhYnMoYS5wYWdlWSwgYi5wYWdlWSkpO1xufTtcblxuLyoqXG4gKiBDYWxjdWxhdGUgc2NhbGUgYmFzZWQgb24gZGlzdGFuY2UgcmF0aW8gd2l0aCBhIG11bHRpcGxpZXJcbiAqIEBwYXJhbSBjdXJyZW50RGlzdGFuY2UgQ3VycmVudCBkaXN0YW5jZSBiZXR3ZWVuIHRvdWNoIHBvaW50c1xuICogQHBhcmFtIGluaXRpYWxEaXN0YW5jZSBJbml0aWFsIGRpc3RhbmNlIGJldHdlZW4gdG91Y2ggcG9pbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTY2FsZSA9IChjdXJyZW50RGlzdGFuY2U6IG51bWJlciwgaW5pdGlhbERpc3RhbmNlOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuXHQvLyBQcmV2ZW50IGRpdmlzaW9uIGJ5IHplcm9cblx0aWYgKCFpbml0aWFsRGlzdGFuY2UpIHJldHVybiAxO1xuXG5cdHJldHVybiAoY3VycmVudERpc3RhbmNlIC8gaW5pdGlhbERpc3RhbmNlKSAqIDEuMjtcbn07XG4iXX0=