UNPKG

element-plus

Version:

A Component Library for Vue 3

38 lines (35 loc) 1.02 kB
import { cAF, rAF } from '../../../../utils/raf.mjs'; import { isFF } from '../utils.mjs'; const useGridWheel = ({ atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }, onWheelDelta) => { let frameHandle = null; let xOffset = 0; let yOffset = 0; const hasReachedEdge = (x, y) => { const xEdgeReached = x < 0 && atXStartEdge.value || x > 0 && atXEndEdge.value; const yEdgeReached = y < 0 && atYStartEdge.value || y > 0 && atYEndEdge.value; return xEdgeReached && yEdgeReached; }; const onWheel = (e) => { cAF(frameHandle); const x = e.deltaX; const y = e.deltaY; if (hasReachedEdge(xOffset, yOffset) && hasReachedEdge(xOffset + x, yOffset + y)) return; xOffset += x; yOffset += y; if (!isFF) { e.preventDefault(); } frameHandle = rAF(() => { onWheelDelta(xOffset, yOffset); xOffset = 0; yOffset = 0; }); }; return { hasReachedEdge, onWheel }; }; export { useGridWheel }; //# sourceMappingURL=use-grid-wheel.mjs.map