🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

wheel-gestures

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wheel-gestures - npm Package Compare versions

Comparing version

to
1.4.0

dist/utils/index.d.ts

1

dist/index.d.ts

@@ -5,1 +5,2 @@ export * from './wheel-gestures/wheel-gestures';

export * from './wheel-analyzer/wheel-analyzer-types';
export * from './utils';

16

dist/wheel-analyzer/wheel-analyzer-types.d.ts

@@ -1,2 +0,3 @@

export declare type Vector3D = number[];
export declare type VectorXYZ = [number, number, number];
export declare type BooleanXYZ = [boolean, boolean, boolean];
export interface WheelAnalyzerState {

@@ -7,4 +8,4 @@ isStarted: boolean;

lastAbsDelta: number;
axisMovement: Vector3D;
axisVelocity: Vector3D;
axisMovement: VectorXYZ;
axisVelocity: VectorXYZ;
accelerationFactors: number[][];

@@ -19,5 +20,5 @@ scrollPoints: ScrollPoint[];

isEndingSoon: boolean;
axisMovement: Vector3D;
axisVelocity: Vector3D;
axisDelta: Vector3D;
axisMovement: VectorXYZ;
axisVelocity: VectorXYZ;
axisDelta: VectorXYZ;
event: WheelEvent | WheelEventData;

@@ -27,3 +28,3 @@ }

currentAbsDelta: number;
axisDeltaUnclampt: number[];
axisDeltaUnclampt: VectorXYZ;
timestamp: number;

@@ -51,1 +52,2 @@ }

export declare type PreventWheelActionType = 'all' | 'x' | 'y';
export declare type ReverseSign = BooleanXYZ | boolean;

@@ -1,4 +0,5 @@

import { PreventWheelActionType, SubscribeFn, Unobserve, Unsubscribe, WheelEventData } from './wheel-analyzer-types';
import { PreventWheelActionType, ReverseSign, SubscribeFn, Unobserve, Unsubscribe, WheelEventData } from './wheel-analyzer-types';
export interface Options {
preventWheelAction: PreventWheelActionType;
reverseSign: ReverseSign;
}

@@ -5,0 +6,0 @@ export declare function WheelAnalyzer(optionsParam?: Partial<Options>): Readonly<{

@@ -68,2 +68,5 @@ 'use strict';

function lastOf(array) {
return array[array.length - 1];
}
function average(numbers) {

@@ -74,3 +77,12 @@ return numbers.reduce(function (a, b) {

}
function addVectors(v1, v2) {
if (v1.length !== v2.length) {
throw new Error('vectors must be same length');
}
return v1.map(function (val, i) {
return val + v2[i];
});
}
var LINE_HEIGHT = 16 * 1.125;

@@ -84,10 +96,22 @@ var PAGE_HEIGHT = typeof window !== 'undefined' && window.innerHeight || 800;

return {
deltaX: deltaX,
deltaY: deltaY,
deltaZ: deltaZ,
deltaMode: 0,
timestamp: e.timeStamp
axisDelta: [deltaX, deltaY, deltaZ],
timeStamp: e.timeStamp
};
}
var reverseAll = [-1, -1, -1];
function reverseSign(wheel, reverseSign) {
if (!reverseSign) {
return wheel;
}
var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function (shouldReverse) {
return shouldReverse ? -1 : 1;
});
return _extends({}, wheel, {
axisDelta: wheel.axisDelta.map(function (delta, i) {
return delta * multipliers[i];
})
});
}
/**

@@ -104,4 +128,4 @@ * the timeout is automatically adjusted during a gesture

lastAbsDelta: Infinity,
axisMovement: [0, 0],
axisVelocity: [0, 0],
axisMovement: [0, 0, 0],
axisVelocity: [0, 0, 0],
accelerationFactors: [],

@@ -134,2 +158,3 @@ scrollPoints: [],

var SOON_ENDING_WHEEL_COUNT = 3;
var reverseSignDefault = [true, true, false];
function WheelAnalyzer(optionsParam) {

@@ -177,3 +202,6 @@ if (optionsParam === void 0) {

var unsubscribe = function unsubscribe(callback) {
if (!callback) throw new Error('please pass the callback which was used to subscribe');
if (!callback) {
throw new Error('please pass the callback used to subscribe');
}
subscriptions = subscriptions.filter(function (s) {

@@ -218,6 +246,9 @@ return s !== callback;

preventWheelAction = _newOptions$preventWh === void 0 ? 'all' : _newOptions$preventWh,
otherOptions = _objectWithoutPropertiesLoose(_newOptions, ["preventWheelAction"]);
_newOptions$reverseSi = _newOptions.reverseSign,
reverseSign = _newOptions$reverseSi === void 0 ? reverseSignDefault : _newOptions$reverseSi,
otherOptions = _objectWithoutPropertiesLoose(_newOptions, ["preventWheelAction", "reverseSign"]);
options = _extends({
preventWheelAction: preventWheelAction
preventWheelAction: preventWheelAction,
reverseSign: reverseSign
}, otherOptions);

@@ -252,7 +283,8 @@ return options;

var processWheelEventData = function processWheelEventData(wheelEvent) {
var _normalizeWheel = normalizeWheel(wheelEvent),
deltaX = _normalizeWheel.deltaX,
deltaY = _normalizeWheel.deltaY,
deltaZ = _normalizeWheel.deltaZ;
var _reverseSign = reverseSign(normalizeWheel(wheelEvent), options.reverseSign),
axisDelta = _reverseSign.axisDelta;
var deltaX = axisDelta[0],
deltaY = axisDelta[1]; // TODO: deltaZ
if (wheelEvent.preventDefault && shouldPreventDefault(wheelEvent)) {

@@ -264,7 +296,7 @@ wheelEvent.preventDefault();

start();
}
} // TODO: deltaZ
var currentDelta = clampDelta(Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX);
var currentAbsDelta = Math.abs(currentDelta);
var axisDelta = [deltaX, deltaY, deltaZ];

@@ -276,3 +308,4 @@ if (state.isMomentum && currentAbsDelta > state.lastAbsDelta) {

currentEvent = wheelEvent;
currentEvent = wheelEvent; // TODO: clampDelta like reverseSign
state.axisMovement = state.axisMovement.map(function (prevDelta, i) {

@@ -284,3 +317,3 @@ return prevDelta + clampDelta(axisDelta[i]);

currentAbsDelta: currentAbsDelta,
axisDeltaUnclampt: [deltaX, deltaY],
axisDeltaUnclampt: axisDelta,
timestamp: wheelEvent.timeStamp

@@ -296,10 +329,5 @@ });

})),
axisDeltaUnclampt: scrollPointsToMerge.reduce(function (_ref, _ref2) {
var sumX = _ref[0],
sumY = _ref[1];
var _ref2$axisDeltaUnclam = _ref2.axisDeltaUnclampt,
x = _ref2$axisDeltaUnclam[0],
y = _ref2$axisDeltaUnclam[1];
return [sumX + x, sumY + y];
}, [0, 0]),
axisDeltaUnclampt: scrollPointsToMerge.map(function (b) {
return b.axisDeltaUnclampt;
}).reduce(addVectors),
timestamp: average(scrollPointsToMerge.map(function (b) {

@@ -462,4 +490,4 @@ return b.timestamp;

var willEndSoon = function willEndSoon() {
var absDeltas = state.scrollPoints.slice(SOON_ENDING_WHEEL_COUNT * -1).map(function (_ref3) {
var currentAbsDelta = _ref3.currentAbsDelta;
var absDeltas = state.scrollPoints.slice(SOON_ENDING_WHEEL_COUNT * -1).map(function (_ref) {
var currentAbsDelta = _ref.currentAbsDelta;
return currentAbsDelta;

@@ -507,7 +535,2 @@ });

var dragState = {
down: false,
axisMovement: [0, 0],
axisVelocity: [0, 0]
};
var wheelAnalyzer = WheelAnalyzer({

@@ -526,10 +549,7 @@ preventWheelAction: axis

wheelAnalyzer.subscribe(function (type, data) {
dragState = {
var dragState = _extends({}, data, {
// TODO: move into analyzer
down: true,
// TODO: why * -1, should this not better be in analyzer or when used?
axisMovement: data.axisMovement.map(function (d) {
return d * -1;
}),
axisVelocity: [data.axisVelocity[0] * -1, data.axisVelocity[1] * -1]
};
start: false
});

@@ -539,3 +559,4 @@ switch (type) {

dragState = _extends({}, dragState, {
down: true
down: true,
start: true
});

@@ -574,2 +595,5 @@ dispatch('wheelstart', dragState);

exports.WheelGestures = WheelGestures;
exports.addVectors = addVectors;
exports.average = average;
exports.lastOf = lastOf;
//# sourceMappingURL=wheel-gestures.cjs.development.js.map

@@ -1,2 +0,2 @@

"use strict";function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function t(e){return e.reduce((function(e,t){return e+t}))/e.length}Object.defineProperty(exports,"__esModule",{value:!0});var n,r,o,s=[1,18,"undefined"!=typeof window&&window.innerHeight||800];function a(n){var r;void 0===n&&(n={});var o,a,i={isStarted:!1,isStartPublished:!1,isMomentum:!1,lastAbsDelta:Infinity,axisMovement:[0,0],axisVelocity:[0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400},l=[],c=[],u=function(e){e.removeEventListener("wheel",f),c=c.filter((function(t){return t!==e}))},E=function(e){if(!e)throw new Error("please pass the callback which was used to subscribe");l=l.filter((function(t){return t!==e}))},h=function(t,n){var r=e({type:t,isEndingSoon:L(),isMomentum:i.isMomentum,axisMovement:i.axisMovement,axisVelocity:i.axisVelocity,axisDelta:[0,0,0],event:o},n);l.forEach((function(e){return e(t,r)}))},f=function(e){Array.isArray(e)?e.forEach((function(e){return p(e)})):p(e)},M=function(t){void 0===t&&(t={});var n=t.preventWheelAction,o=void 0===n?"all":n,s=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(o[n]=e[n]);return o}(t,["preventWheelAction"]);return r=e({preventWheelAction:o},s)},m=function(e){return Math.min(150,Math.max(-150,e))},p=function(e){var n,a={deltaX:(n=e).deltaX*s[n.deltaMode],deltaY:n.deltaY*s[n.deltaMode],deltaZ:(n.deltaZ||0)*s[n.deltaMode],deltaMode:0,timestamp:n.timeStamp},l=a.deltaX,c=a.deltaY,u=a.deltaZ;e.preventDefault&&function(e){var t=e.deltaX,n=e.deltaY;switch(r.preventWheelAction){case"all":return!0;case"x":return Math.abs(t)>=Math.abs(n);case"y":return Math.abs(n)>=Math.abs(t)}}(e)&&e.preventDefault(),i.isStarted||T();var E=m(Math.abs(c)>Math.abs(l)?c:l),f=Math.abs(E),M=[l,c,u];if(i.isMomentum&&f>i.lastAbsDelta&&(b(),T()),o=e,i.axisMovement=i.axisMovement.map((function(e,t){return e+m(M[t])})),i.lastAbsDelta=f,i.scrollPointsToMerge.push({currentAbsDelta:f,axisDeltaUnclampt:[l,c],timestamp:e.timeStamp}),2===i.scrollPointsToMerge.length){var p=i.scrollPointsToMerge,x={currentAbsDelta:t(p.map((function(e){return e.currentAbsDelta}))),axisDeltaUnclampt:p.reduce((function(e,t){var n=t.axisDeltaUnclampt;return[e[0]+n[0],e[1]+n[1]]}),[0,0]),timestamp:t(p.map((function(e){return e.timestamp})))};i.scrollPoints.push(x),W(),i.isMomentum||_(),i.scrollPointsToMerge=[]}i.scrollPoints.length||d(),i.isStartPublished||(h(exports.WheelPhase.ANY_WHEEL_START),h(exports.WheelPhase.WHEEL_START),i.isStartPublished=!0),h(exports.WheelPhase.ANY_WHEEL,{axisDelta:M}),h(i.isMomentum?exports.WheelPhase.MOMENTUM_WHEEL:exports.WheelPhase.WHEEL,{axisDelta:M}),A()},d=function(){i.axisVelocity=i.scrollPointsToMerge[i.scrollPointsToMerge.length-1].axisDeltaUnclampt.map((function(e){return e/i.willEndTimeout}))},W=function(){var e=i.scrollPoints.slice(-2),t=e[0],n=e[1];if(t&&n){var r=n.timestamp-t.timestamp;if(!(r<=0)){var o=n.axisDeltaUnclampt.map((function(e){return e/r})),s=o.map((function(e,t){return e/(i.axisVelocity[t]||1)}));i.axisVelocity=o,i.accelerationFactors.push(s),x(r)}}},x=function(e){var t=10*Math.ceil(e/10)*1.2;i.isMomentum||(t=Math.max(100,2*t)),i.willEndTimeout=Math.min(1e3,Math.round(t))},v=function(e){return 0===e||e<=.96&&e>=.6},_=function(){if(i.accelerationFactors.length<5)return i.isMomentum;var e=i.accelerationFactors.slice(-5),t=e.reduce((function(e,t){if(!e)return!1;var n=!!t.reduce((function(e,t){return e&&e<1&&e===t?1:0})),r=t.filter(v).length===t.length;return n||r}),!0);return i.accelerationFactors=e,t&&!i.isMomentum&&(h(exports.WheelPhase.WHEEL_END),i.isMomentum=!0,h(exports.WheelPhase.MOMENTUM_WHEEL_START)),i.isMomentum},T=function(){(i={isStarted:!1,isStartPublished:!1,isMomentum:!1,lastAbsDelta:Infinity,axisMovement:[0,0],axisVelocity:[0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400}).isStarted=!0},A=function(){clearTimeout(a),a=setTimeout(b,i.willEndTimeout)},b=function(){i.isStarted&&(i.isMomentum?L()?h(exports.WheelPhase.MOMENTUM_WHEEL_END):h(exports.WheelPhase.MOMENTUM_WHEEL_CANCEL):h(exports.WheelPhase.WHEEL_END),h(exports.WheelPhase.ANY_WHEEL_END),i.isMomentum=!1,i.isStarted=!1)},L=function(){var e=i.scrollPoints.slice(-3).map((function(e){return e.currentAbsDelta}));return e.reduce((function(e,t){return e+t}),0)/e.length<=1.4};return M(n),Object.freeze({observe:function(e){return e.addEventListener("wheel",f,{passive:!1}),c.push(e),function(){return u(e)}},unobserve:u,disconnect:function(){c.forEach(u)},subscribe:function(e){return l.push(e),function(){return E(e)}},unsubscribe:E,feedWheel:f,updateOptions:M})}(n=exports.WheelPhase||(exports.WheelPhase={})).ANY_WHEEL_START="ANY_WHEEL_START",n.ANY_WHEEL="ANY_WHEEL",n.ANY_WHEEL_END="ANY_WHEEL_END",n.WHEEL_START="WHEEL_START",n.WHEEL="WHEEL",n.WHEEL_END="WHEEL_END",n.MOMENTUM_WHEEL_START="MOMENTUM_WHEEL_START",n.MOMENTUM_WHEEL="MOMENTUM_WHEEL",n.MOMENTUM_WHEEL_CANCEL="MOMENTUM_WHEEL_CANCEL",n.MOMENTUM_WHEEL_END="MOMENTUM_WHEEL_END",(r=exports.WheelReason||(exports.WheelReason={})).USER="USER",r.ANY="ANY";var i=((o={})[exports.WheelReason.USER]={start:exports.WheelPhase.WHEEL_START,wheel:exports.WheelPhase.WHEEL,end:exports.WheelPhase.WHEEL_END},o[exports.WheelReason.ANY]={start:exports.WheelPhase.ANY_WHEEL_START,wheel:exports.WheelPhase.ANY_WHEEL,end:exports.WheelPhase.ANY_WHEEL_END},o);exports.WheelAnalyzer=a,exports.WheelGestures=function(t){var n=void 0===t?{}:t,r=n.axis,o=n.wheelReason,s=void 0===o?exports.WheelReason.USER:o,l={down:!1,axisMovement:[0,0],axisVelocity:[0,0]},c=a({preventWheelAction:void 0===r?"all":r}),u=c.observe,E=c.unobserve,h=c.disconnect,f=function(){var e={};function t(t,n){e[t]=(e[t]||[]).filter((function(e){return e!==n}))}return Object.freeze({on:function(n,r){return e[n]=(e[n]||[]).concat(r),function(){return t(n,r)}},off:t,dispatch:function(t,n){t in e&&e[t].forEach((function(e){return e(n)}))}})}(),M=f.on,m=f.off,p=f.dispatch;return c.subscribe((function(t,n){switch(l={down:!0,axisMovement:n.axisMovement.map((function(e){return-1*e})),axisVelocity:[-1*n.axisVelocity[0],-1*n.axisVelocity[1]]},t){case i[s].start:l=e({},l,{down:!0}),p("wheelstart",l);break;case i[s].wheel:l=e({},l,{down:!0}),p("wheelmove",l);break;case i[s].end:l=e({},l,{down:!1}),p("wheelend",l);break;default:return}})),Object.freeze({observe:u,unobserve:E,disconnect:h,on:M,off:m})};
"use strict";function e(){return(e=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function t(e){return e.reduce((function(e,t){return e+t}))/e.length}function n(e,t){if(e.length!==t.length)throw new Error("vectors must be same length");return e.map((function(e,n){return e+t[n]}))}Object.defineProperty(exports,"__esModule",{value:!0});var r,o=[1,18,"undefined"!=typeof window&&window.innerHeight||800],s=[-1,-1,-1];(r=exports.WheelPhase||(exports.WheelPhase={})).ANY_WHEEL_START="ANY_WHEEL_START",r.ANY_WHEEL="ANY_WHEEL",r.ANY_WHEEL_END="ANY_WHEEL_END",r.WHEEL_START="WHEEL_START",r.WHEEL="WHEEL",r.WHEEL_END="WHEEL_END",r.MOMENTUM_WHEEL_START="MOMENTUM_WHEEL_START",r.MOMENTUM_WHEEL="MOMENTUM_WHEEL",r.MOMENTUM_WHEEL_CANCEL="MOMENTUM_WHEEL_CANCEL",r.MOMENTUM_WHEEL_END="MOMENTUM_WHEEL_END";var a,i,l=[!0,!0,!1];function u(r){var a;void 0===r&&(r={});var i,u,c={isStarted:!1,isStartPublished:!1,isMomentum:!1,lastAbsDelta:Infinity,axisMovement:[0,0,0],axisVelocity:[0,0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400},E=[],h=[],f=function(e){e.removeEventListener("wheel",p),h=h.filter((function(t){return t!==e}))},m=function(e){e&&(E=E.filter((function(t){return t!==e})))},M=function(t,n){var r=e({type:t,isEndingSoon:H(),isMomentum:c.isMomentum,axisMovement:c.axisMovement,axisVelocity:c.axisVelocity,axisDelta:[0,0,0],event:i},n);E.forEach((function(e){return e(t,r)}))},p=function(e){Array.isArray(e)?e.forEach((function(e){return v(e)})):v(e)},W=function(t){void 0===t&&(t={});var n=t.preventWheelAction,r=void 0===n?"all":n,o=t.reverseSign,s=void 0===o?l:o,i=function(e,t){if(null==e)return{};var n,r,o={},s=Object.keys(e);for(r=0;r<s.length;r++)t.indexOf(n=s[r])>=0||(o[n]=e[n]);return o}(t,["preventWheelAction","reverseSign"]);return a=e({preventWheelAction:r,reverseSign:s},i)},d=function(e){return Math.min(150,Math.max(-150,e))},v=function(r){var l,u=function(t,n){if(!n)return t;var r=!0===n?s:n.map((function(e){return e?-1:1}));return e({},t,{axisDelta:t.axisDelta.map((function(e,t){return e*r[t]}))})}({axisDelta:[(l=r).deltaX*o[l.deltaMode],l.deltaY*o[l.deltaMode],(l.deltaZ||0)*o[l.deltaMode]],timeStamp:l.timeStamp},a.reverseSign).axisDelta,E=u[0],h=u[1];r.preventDefault&&function(e){var t=e.deltaX,n=e.deltaY;switch(a.preventWheelAction){case"all":return!0;case"x":return Math.abs(t)>=Math.abs(n);case"y":return Math.abs(n)>=Math.abs(t)}}(r)&&r.preventDefault(),c.isStarted||L();var f=d(Math.abs(h)>Math.abs(E)?h:E),m=Math.abs(f);if(c.isMomentum&&m>c.lastAbsDelta&&(P(),L()),i=r,c.axisMovement=c.axisMovement.map((function(e,t){return e+d(u[t])})),c.lastAbsDelta=m,c.scrollPointsToMerge.push({currentAbsDelta:m,axisDeltaUnclampt:u,timestamp:r.timeStamp}),2===c.scrollPointsToMerge.length){var p=c.scrollPointsToMerge,W={currentAbsDelta:t(p.map((function(e){return e.currentAbsDelta}))),axisDeltaUnclampt:p.map((function(e){return e.axisDeltaUnclampt})).reduce(n),timestamp:t(p.map((function(e){return e.timestamp})))};c.scrollPoints.push(W),_(),c.isMomentum||b(),c.scrollPointsToMerge=[]}c.scrollPoints.length||x(),c.isStartPublished||(M(exports.WheelPhase.ANY_WHEEL_START),M(exports.WheelPhase.WHEEL_START),c.isStartPublished=!0),M(exports.WheelPhase.ANY_WHEEL,{axisDelta:u}),M(c.isMomentum?exports.WheelPhase.MOMENTUM_WHEEL:exports.WheelPhase.WHEEL,{axisDelta:u}),N()},x=function(){c.axisVelocity=c.scrollPointsToMerge[c.scrollPointsToMerge.length-1].axisDeltaUnclampt.map((function(e){return e/c.willEndTimeout}))},_=function(){var e=c.scrollPoints.slice(-2),t=e[0],n=e[1];if(t&&n){var r=n.timestamp-t.timestamp;if(!(r<=0)){var o=n.axisDeltaUnclampt.map((function(e){return e/r})),s=o.map((function(e,t){return e/(c.axisVelocity[t]||1)}));c.axisVelocity=o,c.accelerationFactors.push(s),T(r)}}},T=function(e){var t=10*Math.ceil(e/10)*1.2;c.isMomentum||(t=Math.max(100,2*t)),c.willEndTimeout=Math.min(1e3,Math.round(t))},A=function(e){return 0===e||e<=.96&&e>=.6},b=function(){if(c.accelerationFactors.length<5)return c.isMomentum;var e=c.accelerationFactors.slice(-5),t=e.reduce((function(e,t){if(!e)return!1;var n=!!t.reduce((function(e,t){return e&&e<1&&e===t?1:0})),r=t.filter(A).length===t.length;return n||r}),!0);return c.accelerationFactors=e,t&&!c.isMomentum&&(M(exports.WheelPhase.WHEEL_END),c.isMomentum=!0,M(exports.WheelPhase.MOMENTUM_WHEEL_START)),c.isMomentum},L=function(){(c={isStarted:!1,isStartPublished:!1,isMomentum:!1,lastAbsDelta:Infinity,axisMovement:[0,0,0],axisVelocity:[0,0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400}).isStarted=!0},N=function(){clearTimeout(u),u=setTimeout(P,c.willEndTimeout)},P=function(){c.isStarted&&(c.isMomentum?H()?M(exports.WheelPhase.MOMENTUM_WHEEL_END):M(exports.WheelPhase.MOMENTUM_WHEEL_CANCEL):M(exports.WheelPhase.WHEEL_END),M(exports.WheelPhase.ANY_WHEEL_END),c.isMomentum=!1,c.isStarted=!1)},H=function(){var e=c.scrollPoints.slice(-3).map((function(e){return e.currentAbsDelta}));return e.reduce((function(e,t){return e+t}),0)/e.length<=1.4};return W(r),Object.freeze({observe:function(e){return e.addEventListener("wheel",p,{passive:!1}),h.push(e),function(){return f(e)}},unobserve:f,disconnect:function(){h.forEach(f)},subscribe:function(e){return E.push(e),function(){return m(e)}},unsubscribe:m,feedWheel:p,updateOptions:W})}(a=exports.WheelReason||(exports.WheelReason={})).USER="USER",a.ANY="ANY";var c=((i={})[exports.WheelReason.USER]={start:exports.WheelPhase.WHEEL_START,wheel:exports.WheelPhase.WHEEL,end:exports.WheelPhase.WHEEL_END},i[exports.WheelReason.ANY]={start:exports.WheelPhase.ANY_WHEEL_START,wheel:exports.WheelPhase.ANY_WHEEL,end:exports.WheelPhase.ANY_WHEEL_END},i);exports.WheelAnalyzer=u,exports.WheelGestures=function(t){var n=void 0===t?{}:t,r=n.axis,o=n.wheelReason,s=void 0===o?exports.WheelReason.USER:o,a=u({preventWheelAction:void 0===r?"all":r}),i=a.observe,l=a.unobserve,E=a.disconnect,h=function(){var e={};function t(t,n){e[t]=(e[t]||[]).filter((function(e){return e!==n}))}return Object.freeze({on:function(n,r){return e[n]=(e[n]||[]).concat(r),function(){return t(n,r)}},off:t,dispatch:function(t,n){t in e&&e[t].forEach((function(e){return e(n)}))}})}(),f=h.on,m=h.off,M=h.dispatch;return a.subscribe((function(t,n){var r=e({},n,{down:!0,start:!1});switch(t){case c[s].start:r=e({},r,{down:!0,start:!0}),M("wheelstart",r);break;case c[s].wheel:r=e({},r,{down:!0}),M("wheelmove",r);break;case c[s].end:r=e({},r,{down:!1}),M("wheelend",r);break;default:return}})),Object.freeze({observe:i,unobserve:l,disconnect:E,on:f,off:m})},exports.addVectors=n,exports.average=t,exports.lastOf=function(e){return e[e.length-1]};
//# sourceMappingURL=wheel-gestures.cjs.production.min.js.map

@@ -64,2 +64,5 @@ function _extends() {

function lastOf(array) {
return array[array.length - 1];
}
function average(numbers) {

@@ -70,3 +73,12 @@ return numbers.reduce(function (a, b) {

}
function addVectors(v1, v2) {
if (v1.length !== v2.length) {
throw new Error('vectors must be same length');
}
return v1.map(function (val, i) {
return val + v2[i];
});
}
var LINE_HEIGHT = 16 * 1.125;

@@ -80,10 +92,22 @@ var PAGE_HEIGHT = typeof window !== 'undefined' && window.innerHeight || 800;

return {
deltaX: deltaX,
deltaY: deltaY,
deltaZ: deltaZ,
deltaMode: 0,
timestamp: e.timeStamp
axisDelta: [deltaX, deltaY, deltaZ],
timeStamp: e.timeStamp
};
}
var reverseAll = [-1, -1, -1];
function reverseSign(wheel, reverseSign) {
if (!reverseSign) {
return wheel;
}
var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function (shouldReverse) {
return shouldReverse ? -1 : 1;
});
return _extends({}, wheel, {
axisDelta: wheel.axisDelta.map(function (delta, i) {
return delta * multipliers[i];
})
});
}
/**

@@ -100,4 +124,4 @@ * the timeout is automatically adjusted during a gesture

lastAbsDelta: Infinity,
axisMovement: [0, 0],
axisVelocity: [0, 0],
axisMovement: [0, 0, 0],
axisVelocity: [0, 0, 0],
accelerationFactors: [],

@@ -133,2 +157,3 @@ scrollPoints: [],

var SOON_ENDING_WHEEL_COUNT = 3;
var reverseSignDefault = [true, true, false];
function WheelAnalyzer(optionsParam) {

@@ -176,3 +201,7 @@ if (optionsParam === void 0) {

var unsubscribe = function unsubscribe(callback) {
if (!callback) throw new Error('please pass the callback which was used to subscribe');
if (!callback) {
if (isDev) throw new Error('please pass the callback used to subscribe');
return;
}
subscriptions = subscriptions.filter(function (s) {

@@ -217,6 +246,9 @@ return s !== callback;

preventWheelAction = _newOptions$preventWh === void 0 ? 'all' : _newOptions$preventWh,
otherOptions = _objectWithoutPropertiesLoose(_newOptions, ["preventWheelAction"]);
_newOptions$reverseSi = _newOptions.reverseSign,
reverseSign = _newOptions$reverseSi === void 0 ? reverseSignDefault : _newOptions$reverseSi,
otherOptions = _objectWithoutPropertiesLoose(_newOptions, ["preventWheelAction", "reverseSign"]);
options = _extends({
preventWheelAction: preventWheelAction
preventWheelAction: preventWheelAction,
reverseSign: reverseSign
}, otherOptions);

@@ -251,7 +283,8 @@ return options;

var processWheelEventData = function processWheelEventData(wheelEvent) {
var _normalizeWheel = normalizeWheel(wheelEvent),
deltaX = _normalizeWheel.deltaX,
deltaY = _normalizeWheel.deltaY,
deltaZ = _normalizeWheel.deltaZ;
var _reverseSign = reverseSign(normalizeWheel(wheelEvent), options.reverseSign),
axisDelta = _reverseSign.axisDelta;
var deltaX = axisDelta[0],
deltaY = axisDelta[1]; // TODO: deltaZ
if (wheelEvent.preventDefault && shouldPreventDefault(wheelEvent)) {

@@ -263,7 +296,7 @@ wheelEvent.preventDefault();

start();
}
} // TODO: deltaZ
var currentDelta = clampDelta(Math.abs(deltaY) > Math.abs(deltaX) ? deltaY : deltaX);
var currentAbsDelta = Math.abs(currentDelta);
var axisDelta = [deltaX, deltaY, deltaZ];

@@ -275,3 +308,4 @@ if (state.isMomentum && currentAbsDelta > state.lastAbsDelta) {

currentEvent = wheelEvent;
currentEvent = wheelEvent; // TODO: clampDelta like reverseSign
state.axisMovement = state.axisMovement.map(function (prevDelta, i) {

@@ -283,3 +317,3 @@ return prevDelta + clampDelta(axisDelta[i]);

currentAbsDelta: currentAbsDelta,
axisDeltaUnclampt: [deltaX, deltaY],
axisDeltaUnclampt: axisDelta,
timestamp: wheelEvent.timeStamp

@@ -295,10 +329,5 @@ });

})),
axisDeltaUnclampt: scrollPointsToMerge.reduce(function (_ref, _ref2) {
var sumX = _ref[0],
sumY = _ref[1];
var _ref2$axisDeltaUnclam = _ref2.axisDeltaUnclampt,
x = _ref2$axisDeltaUnclam[0],
y = _ref2$axisDeltaUnclam[1];
return [sumX + x, sumY + y];
}, [0, 0]),
axisDeltaUnclampt: scrollPointsToMerge.map(function (b) {
return b.axisDeltaUnclampt;
}).reduce(addVectors),
timestamp: average(scrollPointsToMerge.map(function (b) {

@@ -461,4 +490,4 @@ return b.timestamp;

var willEndSoon = function willEndSoon() {
var absDeltas = state.scrollPoints.slice(SOON_ENDING_WHEEL_COUNT * -1).map(function (_ref3) {
var currentAbsDelta = _ref3.currentAbsDelta;
var absDeltas = state.scrollPoints.slice(SOON_ENDING_WHEEL_COUNT * -1).map(function (_ref) {
var currentAbsDelta = _ref.currentAbsDelta;
return currentAbsDelta;

@@ -508,7 +537,2 @@ });

var dragState = {
down: false,
axisMovement: [0, 0],
axisVelocity: [0, 0]
};
var wheelAnalyzer = WheelAnalyzer({

@@ -527,10 +551,7 @@ preventWheelAction: axis

wheelAnalyzer.subscribe(function (type, data) {
dragState = {
var dragState = _extends({}, data, {
// TODO: move into analyzer
down: true,
// TODO: why * -1, should this not better be in analyzer or when used?
axisMovement: data.axisMovement.map(function (d) {
return d * -1;
}),
axisVelocity: [data.axisVelocity[0] * -1, data.axisVelocity[1] * -1]
};
start: false
});

@@ -540,3 +561,4 @@ switch (type) {

dragState = _extends({}, dragState, {
down: true
down: true,
start: true
});

@@ -573,3 +595,3 @@ dispatch('wheelstart', dragState);

export { WheelAnalyzer, WheelGestures, WheelPhase, WheelReason };
export { WheelAnalyzer, WheelGestures, WheelPhase, WheelReason, addVectors, average, lastOf };
//# sourceMappingURL=wheel-gestures.esm.js.map

@@ -1,5 +0,5 @@

export interface WheelDragState {
import { PhaseData } from '..';
export interface WheelDragState extends PhaseData {
down: boolean;
axisMovement: number[];
axisVelocity: [number, number];
start: boolean;
}

@@ -6,0 +6,0 @@ export declare enum WheelReason {

@@ -1,8 +0,7 @@

import { WheelEventData } from '../wheel-analyzer/wheel-analyzer-types';
export declare function normalizeWheel(e: WheelEventData): {
deltaX: number;
deltaY: number;
deltaZ: number;
deltaMode: 0;
timestamp: number;
};
import { ReverseSign, VectorXYZ, WheelEventData } from '../wheel-analyzer/wheel-analyzer-types';
export interface NormalizedWheel {
axisDelta: VectorXYZ;
timeStamp: number;
}
export declare function normalizeWheel(e: WheelEventData): NormalizedWheel;
export declare function reverseSign<T extends Pick<NormalizedWheel, 'axisDelta'>>(wheel: T, reverseSign: ReverseSign): T;
{
"name": "wheel-gestures",
"version": "1.3.0",
"version": "1.4.0",
"description": "wheel gestures and momentum detection",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet