| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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
|