UNPKG

element-plus

Version:

A Component Library for Vue 3

39 lines (36 loc) 1.03 kB
import '../../../../utils/index.mjs'; import { HORIZONTAL, VERTICAL } from '../defaults.mjs'; import { cAF, rAF } from '../../../../utils/raf.mjs'; import { isFirefox } from '../../../../utils/browser.mjs'; const LayoutKeys = { [HORIZONTAL]: "deltaX", [VERTICAL]: "deltaY" }; const useWheel = ({ atEndEdge, atStartEdge, layout }, onWheelDelta) => { let frameHandle; let offset = 0; const hasReachedEdge = (offset2) => { const edgeReached = offset2 < 0 && atStartEdge.value || offset2 > 0 && atEndEdge.value; return edgeReached; }; const onWheel = (e) => { cAF(frameHandle); const newOffset = e[LayoutKeys[layout.value]]; if (hasReachedEdge(offset) && hasReachedEdge(offset + newOffset)) return; offset += newOffset; if (!isFirefox()) { e.preventDefault(); } frameHandle = rAF(() => { onWheelDelta(offset); offset = 0; }); }; return { hasReachedEdge, onWheel }; }; export { useWheel as default }; //# sourceMappingURL=use-wheel.mjs.map