UNPKG

element-plus

Version:

A Component Library for Vue 3

52 lines (47 loc) 1.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); require('../../../../utils/index.js'); var raf = require('../../../../utils/raf.js'); var browser = require('../../../../utils/browser.js'); 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) => { raf.cAF(frameHandle); let x = e.deltaX; let y = e.deltaY; if (Math.abs(x) > Math.abs(y)) { y = 0; } else { x = 0; } if (e.shiftKey && y !== 0) { x = y; y = 0; } if (hasReachedEdge(xOffset, yOffset) && hasReachedEdge(xOffset + x, yOffset + y)) return; xOffset += x; yOffset += y; if (!browser.isFirefox()) { e.preventDefault(); } frameHandle = raf.rAF(() => { onWheelDelta(xOffset, yOffset); xOffset = 0; yOffset = 0; }); }; return { hasReachedEdge, onWheel }; }; exports.useGridWheel = useGridWheel; //# sourceMappingURL=use-grid-wheel.js.map