UNPKG

@ionic/core

Version:
45 lines (41 loc) 1.47 kB
import { h } from '../ionic.core.js'; import { createGesture } from './chunk-f56eaea8.js'; function createSwipeBackGesture(el, queue, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) { const win = el.ownerDocument.defaultView; function canStart(detail) { return detail.startX <= 50 && canStartHandler(); } function onMove(detail) { const delta = detail.deltaX; const stepValue = delta / win.innerWidth; onMoveHandler(stepValue); } function onEnd(detail) { const delta = detail.deltaX; const width = win.innerWidth; const stepValue = delta / width; const velocity = detail.velocityX; const z = width / 2.0; const shouldComplete = velocity >= 0 && (velocity > 0.2 || detail.deltaX > z); const missing = shouldComplete ? 1 - stepValue : stepValue; const missingDistance = missing * width; let realDur = 0; if (missingDistance > 5) { const dur = missingDistance / Math.abs(velocity); realDur = Math.min(dur, 300); } onEndHandler(shouldComplete, stepValue, realDur); } return createGesture({ el, queue, gestureName: 'goback-swipe', gesturePriority: 40, threshold: 10, canStart, onStart: onStartHandler, onMove, onEnd }); } export { createSwipeBackGesture };