react-ui-animate 5.0.0-alpha.3 → 5.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("@raidipesh78/re-motion"),t=require("react");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=n(t),r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},a.apply(this,arguments)};function f(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a}function l(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var u=function(){function t(t){this.animation=new e.MotionValue(t)}return t.prototype.set=function(t){var n,i,r,o,a,f,s=this;if(!(t instanceof e.MotionValue))if(null===(n=this.unsubscribe)||void 0===n||n.call(this),this.unsubscribe=void 0,"object"==typeof t&&null!==t){var l=t.type,u=t.to,c=t.options;if((null==c?void 0:c.onChange)&&(this.unsubscribe=this.animation.subscribe(c.onChange)),"sequence"===l){var h=(null!==(i=null==c?void 0:c.steps)&&void 0!==i?i:[]).map((function(e){return s.buildDriver(e)})),v=e.sequence(h);return(null==c?void 0:c.onComplete)&&(null===(r=v.setOnComplete)||void 0===r||r.call(v,null==c?void 0:c.onComplete)),void v.start()}if("loop"===l){var d=this.buildDriver(c.controller);v=e.loop(d,null==c?void 0:c.iterations);return(null==c?void 0:c.onComplete)&&(null===(o=v.setOnComplete)||void 0===o||o.call(v,null==c?void 0:c.onComplete)),void v.start()}null===(f=(a=this.buildDriver({type:l,to:u,options:c})).start)||void 0===f||f.call(a)}else this.animation.set(t)},t.prototype.buildDriver=function(t){var n,i,r=this.animation;switch(t.type){case"spring":return e.spring(r,t.to,t.options);case"timing":return e.timing(r,t.to,t.options);case"decay":return e.decay(r,null===(n=t.options)||void 0===n?void 0:n.velocity,t.options);case"delay":return e.delay(null===(i=t.options)||void 0===i?void 0:i.delay);case"sequence":return e.sequence(t.options.steps.map(this.buildDriver.bind(this)));default:throw new Error('Unsupported driver type "'.concat(t.type,'"'))}},Object.defineProperty(t.prototype,"value",{get:function(){return this.animation},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"current",{get:function(){return this.animation.current},enumerable:!1,configurable:!0}),t.prototype.destroy=function(){var e;null===(e=this.unsubscribe)||void 0===e||e.call(this),this.unsubscribe=void 0},t}();function c(e){var n,i,r=t.useRef(null);if(null===r.current){var o=[];if(Array.isArray(e))e.forEach((function(e,t){o.push([String(t),new u(e)])}));else if("object"==typeof e)try{for(var a=f(Object.entries(e)),l=a.next();!l.done;l=a.next()){var c=s(l.value,2),h=c[0],v=c[1];o.push([h,new u(v)])}}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}else o.push(["__0",new u(e)]);r.current=o}t.useEffect((function(){return function(){r.current.forEach((function(e){return s(e,2)[1].destroy()})),r.current=null}}),[]);var d=function(){var t,n,i=r.current;if(Array.isArray(e))return i.map((function(e){return s(e,2)[1].value}));if("object"==typeof e){var o={};try{for(var a=f(i),l=a.next();!l.done;l=a.next()){var u=s(l.value,2),c=u[0],h=u[1];o[c]=h.value}}catch(e){t={error:e}}finally{try{l&&!l.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}return o}return i[0][1].value}();return[d,function(t){var n,i,o=r.current;if(Array.isArray(e)){var a=t;Object.entries(a).forEach((function(e){var t,n=s(e,2),i=n[0],r=n[1],a=Number(i);isNaN(a)||void 0===r||null===(t=o[a])||void 0===t||t[1].set(r)}))}else if("object"==typeof e&&null!==e){a=t;var l=function(e,t){var n=o.find((function(t){return s(t,1)[0]===e}));n&&void 0!==t&&n[1].set(t)};try{for(var u=f(Object.entries(a)),c=u.next();!c.done;c=u.next()){var h=s(c.value,2);l(h[0],h[1])}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}}else o[0][1].set(t)}]}var h={Timing:{BOUNCE:{duration:500,easing:e.Easing.bounce},EASE_IN:{duration:500,easing:e.Easing.in(e.Easing.ease)},EASE_OUT:{duration:500,easing:e.Easing.out(e.Easing.ease)},EASE_IN_OUT:{duration:500,easing:e.Easing.inOut(e.Easing.ease)},POWER1:{duration:500,easing:e.Easing.bezier(.17,.42,.51,.97)},POWER2:{duration:500,easing:e.Easing.bezier(.07,.11,.13,1)},POWER3:{duration:500,easing:e.Easing.bezier(.09,.7,.16,1.04)},POWER4:{duration:500,easing:e.Easing.bezier(.05,.54,0,1.03)},LINEAR:{duration:500,easing:e.Easing.linear}},Spring:{ELASTIC:{mass:1,friction:18,tension:250},EASE:{mass:1,friction:26,tension:170},STIFF:{mass:1,friction:18,tension:350},WOBBLE:{mass:1,friction:8,tension:250}}},v=function(e,t){var n,i,r;return{type:"spring",to:e,options:{stiffness:null!==(n=null==t?void 0:t.tension)&&void 0!==n?n:100,damping:null!==(i=null==t?void 0:t.friction)&&void 0!==i?i:10,mass:null!==(r=null==t?void 0:t.mass)&&void 0!==r?r:1,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}};var d=/[+-]?\d+(\.\d+)?|[\s]?\.\d+|#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi,m=/#[a-f\d]{3,}|transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|burntsienna|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen/gi,p={transparent:"#00000000",aliceblue:"#f0f8ffff",antiquewhite:"#faebd7ff",aqua:"#00ffffff",aquamarine:"#7fffd4ff",azure:"#f0ffffff",beige:"#f5f5dcff",bisque:"#ffe4c4ff",black:"#000000ff",blanchedalmond:"#ffebcdff",blue:"#0000ffff",blueviolet:"#8a2be2ff",brown:"#a52a2aff",burlywood:"#deb887ff",burntsienna:"#ea7e5dff",cadetblue:"#5f9ea0ff",chartreuse:"#7fff00ff",chocolate:"#d2691eff",coral:"#ff7f50ff",cornflowerblue:"#6495edff",cornsilk:"#fff8dcff",crimson:"#dc143cff",cyan:"#00ffffff",darkblue:"#00008bff",darkcyan:"#008b8bff",darkgoldenrod:"#b8860bff",darkgray:"#a9a9a9ff",darkgreen:"#006400ff",darkgrey:"#a9a9a9ff",darkkhaki:"#bdb76bff",darkmagenta:"#8b008bff",darkolivegreen:"#556b2fff",darkorange:"#ff8c00ff",darkorchid:"#9932ccff",darkred:"#8b0000ff",darksalmon:"#e9967aff",darkseagreen:"#8fbc8fff",darkslateblue:"#483d8bff",darkslategray:"#2f4f4fff",darkslategrey:"#2f4f4fff",darkturquoise:"#00ced1ff",darkviolet:"#9400d3ff",deeppink:"#ff1493ff",deepskyblue:"#00bfffff",dimgray:"#696969ff",dimgrey:"#696969ff",dodgerblue:"#1e90ffff",firebrick:"#b22222ff",floralwhite:"#fffaf0ff",forestgreen:"#228b22ff",fuchsia:"#ff00ffff",gainsboro:"#dcdcdcff",ghostwhite:"#f8f8ffff",gold:"#ffd700ff",goldenrod:"#daa520ff",gray:"#808080ff",green:"#008000ff",greenyellow:"#adff2fff",grey:"#808080ff",honeydew:"#f0fff0ff",hotpink:"#ff69b4ff",indianred:"#cd5c5cff",indigo:"#4b0082ff",ivory:"#fffff0ff",khaki:"#f0e68cff",lavender:"#e6e6faff",lavenderblush:"#fff0f5ff",lawngreen:"#7cfc00ff",lemonchiffon:"#fffacdff",lightblue:"#add8e6ff",lightcoral:"#f08080ff",lightcyan:"#e0ffffff",lightgoldenrodyellow:"#fafad2ff",lightgray:"#d3d3d3ff",lightgreen:"#90ee90ff",lightgrey:"#d3d3d3ff",lightpink:"#ffb6c1ff",lightsalmon:"#ffa07aff",lightseagreen:"#20b2aaff",lightskyblue:"#87cefaff",lightslategray:"#778899ff",lightslategrey:"#778899ff",lightsteelblue:"#b0c4deff",lightyellow:"#ffffe0ff",lime:"#00ff00ff",limegreen:"#32cd32ff",linen:"#faf0e6ff",magenta:"#ff00ffff",maroon:"#800000ff",mediumaquamarine:"#66cdaaff",mediumblue:"#0000cdff",mediumorchid:"#ba55d3ff",mediumpurple:"#9370dbff",mediumseagreen:"#3cb371ff",mediumslateblue:"#7b68eeff",mediumspringgreen:"#00fa9aff",mediumturquoise:"#48d1ccff",mediumvioletred:"#c71585ff",midnightblue:"#191970ff",mintcream:"#f5fffaff",mistyrose:"#ffe4e1ff",moccasin:"#ffe4b5ff",navajowhite:"#ffdeadff",navy:"#000080ff",oldlace:"#fdf5e6ff",olive:"#808000ff",olivedrab:"#6b8e23ff",orange:"#ffa500ff",orangered:"#ff4500ff",orchid:"#da70d6ff",palegoldenrod:"#eee8aaff",palegreen:"#98fb98ff",paleturquoise:"#afeeeeff",palevioletred:"#db7093ff",papayawhip:"#ffefd5ff",peachpuff:"#ffdab9ff",peru:"#cd853fff",pink:"#ffc0cbff",plum:"#dda0ddff",powderblue:"#b0e0e6ff",purple:"#800080ff",rebeccapurple:"#663399ff",red:"#ff0000ff",rosybrown:"#bc8f8fff",royalblue:"#4169e1ff",saddlebrown:"#8b4513ff",salmon:"#fa8072ff",sandybrown:"#f4a460ff",seagreen:"#2e8b57ff",seashell:"#fff5eeff",sienna:"#a0522dff",silver:"#c0c0c0ff",skyblue:"#87ceebff",slateblue:"#6a5acdff",slategray:"#708090ff",slategrey:"#708090ff",snow:"#fffafaff",springgreen:"#00ff7fff",steelblue:"#4682b4ff",tan:"#d2b48cff",teal:"#008080ff",thistle:"#d8bfd8ff",tomato:"#ff6347ff",turquoise:"#40e0d0ff",violet:"#ee82eeff",wheat:"#f5deb3ff",white:"#ffffffff",whitesmoke:"#f5f5f5ff",yellow:"#ffff00ff",yellowgreen:"#9acd32ff"};function y(e){var t=function(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,i){return"#"+t+t+n+n+i+i}))}(e),n=function(e){return 7===e.length?e+"FF":e}(t),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16),a:parseInt(i[4],16)/255}}function g(e){var t=e.r,n=e.g,i=e.b,r=e.a;return"#"+(256|t).toString(16).slice(1)+(256|n).toString(16).slice(1)+(256|i).toString(16).slice(1)+(255*r|256).toString(16).slice(1)}var b=function(e,t,n,i){var r=s(t,4),o=r[0],a=r[1],f=r[2],l=r[3],u=e;if(u<o){if("identity"===n)return u;"clamp"===n&&(u=o)}if(u>a){if("identity"===i)return u;"clamp"===i&&(u=a)}return f===l?f:o===a?e<=o?f:l:(o===-1/0?u=-u:a===1/0?u-=o:u=(u-o)/(a-o),f===-1/0?u=-u:l===1/0?u+=f:u=u*(l-f)+f,u)},x=function(e,t,n,i){var r=s(t,4),o=r[0],a=r[1],f=r[2],l=r[3];if(f.length===l.length)return f.map((function(t,r){return"string"==typeof t?function(e,t){var n=s(t,4),i=n[0],r=n[1],o=n[2],a=n[3],f=y(o),l=y(a);return g({r:b(e,[i,r,f.r,l.r],"clamp","clamp"),g:b(e,[i,r,f.g,l.g],"clamp","clamp"),b:b(e,[i,r,f.b,l.b],"clamp","clamp"),a:b(e,[i,r,f.a,l.a],"clamp","clamp")})}(e,[o,a,t,l[r]]):b(e,[o,a,t,l[r]],n,i)}));throw new Error("Array length doesn't match")},w=function(e){return e.replace(d,"$")},E=function(e){return e.match(d).map((function(e){return-1!==e.indexOf("#")?e:Number(e)}))},k=function(e){return e.replace(m,(function(e){if(-1!==e.indexOf("#"))return g(y(e));if(Object.prototype.hasOwnProperty.call(p,e))return p[e];throw new Error("String cannot be parsed!")}))};function M(e,t){var n=new Map;return t.forEach((function(t){var i=s(t,3),r=i[0],o=i[1],a=i[2],f=void 0!==a&&a;n.set(r,function(e,t,n,i){return void 0===i&&(i=!1),e.forEach((function(e){e.addEventListener(t,n,i)})),function(){e.forEach((function(e){e.removeEventListener(t,n,i)}))}}(e,r,o,f))})),function(e){var t,i;try{for(var r=f(n.entries()),o=r.next();!o.done;o=r.next()){var a=s(o.value,2),l=a[0],u=a[1];if(!e)return void u();-1!==e.indexOf(l)&&u()}}catch(e){t={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}}}function _(e,t,n){return Math.min(Math.max(e,t),n)}function O(e,t,n){return 0===t||Math.abs(t)===1/0?function(e,t){return Math.pow(e,5*t)}(e,n):e*t*n/(t+n*e)}var I=function(e,t){return{x:e,y:t}},C=function(){function e(){this.lastTimeStamp=Date.now(),this.isActive=!1,this.targetElements=[]}return e.prototype._initEvents=function(){},e.prototype._cancelEvents=function(){this._subscribe&&this._subscribe()},e.prototype.applyCallback=function(e){this.callback=e},e.prototype.applyGesture=function(e){var t=this,n=e.targetElement,i=e.targetElements,r=e.callback,o=e.config;return this.targetElement=n,this.targetElements=i.map((function(e){return e.current})),this.callback=r,this.config=o,this._initEvents(),function(){return t._subscribe&&t._subscribe()}},e._VELOCITY_LIMIT=20,e}(),S=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movementStart=I(0,0),t.initialMovement=I(0,0),t.movement=I(0,0),t.previousMovement=I(0,0),t.translation=I(0,0),t.offset=I(0,0),t.velocity=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){(this.targetElement||this.targetElements.length>0)&&(this._subscribe=M([window],[["mousedown",this.pointerDown.bind(this)],["mousemove",this.pointerMove.bind(this)],["mouseup",this.pointerUp.bind(this)],["touchstart",this.pointerDown.bind(this),{passive:!1}],["touchmove",this.pointerMove.bind(this),{passive:!1}],["touchend",this.pointerUp.bind(this)]]))},t.prototype._cancelEvents=function(){this._subscribe&&this._subscribe(["mousedown","mousemove","touchstart","touchmove"])},t.prototype._handleCallback=function(){var e=this;this.callback&&this.callback({args:[this.currentIndex],down:this.isActive,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.translation.x,offsetY:this.translation.y,velocityX:this.velocity.x,velocityY:this.velocity.y,distanceX:Math.abs(this.movement.x),distanceY:Math.abs(this.movement.y),directionX:Math.sign(this.movement.x),directionY:Math.sign(this.movement.y),cancel:function(){e._cancelEvents()}})},t.prototype.pointerDown=function(e){var t;"touchstart"===e.type?this.movementStart={x:e.touches[0].clientX,y:e.touches[0].clientY}:this.movementStart={x:e.clientX,y:e.clientY},this.movement={x:0,y:0},this.offset={x:this.translation.x,y:this.translation.y},this.previousMovement={x:0,y:0},this.velocity={x:0,y:0};var n=this.targetElements.find((function(t){return t===e.target}));if(e.target===this.targetElement||n){this.isActive=!0,e.preventDefault(),n&&(this.currentIndex=this.targetElements.indexOf(n));var i=(null===(t=this.config)||void 0===t?void 0:t.initial)&&this.config.initial(),r=null==i?void 0:i.movementX,o=null==i?void 0:i.movementY;this.initialMovement={x:null!=r?r:0,y:null!=o?o:0},this.movement={x:this.initialMovement.x,y:this.initialMovement.y},this.previousMovement={x:this.initialMovement.x,y:this.initialMovement.y},this._handleCallback()}},t.prototype.pointerMove=function(e){if(this.isActive){e.preventDefault();var t=Date.now(),n=_(t-this.lastTimeStamp,.1,64);this.lastTimeStamp=t;var i=n/1e3;"touchmove"===e.type?this.movement={x:this.initialMovement.x+(e.touches[0].clientX-this.movementStart.x),y:this.initialMovement.y+(e.touches[0].clientY-this.movementStart.y)}:this.movement={x:this.initialMovement.x+(e.clientX-this.movementStart.x),y:this.initialMovement.y+(e.clientY-this.movementStart.y)},this.translation={x:this.offset.x+this.movement.x,y:this.offset.y+this.movement.y},this.velocity={x:_((this.movement.x-this.previousMovement.x)/i/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_((this.movement.y-this.previousMovement.y)/i/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()}},t.prototype.pointerUp=function(){this.isActive&&(this.isActive=!1,this._handleCallback(),this._cancelEvents(),this._initEvents())},t}(C),T=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.velocity=I(0,0),t.direction=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=M([this.targetElement],[["mousemove",this.onMouseMove.bind(this)]]):this.targetElements.length>0?this._subscribe=M(this.targetElements,[["mousemove",this.onMouseMove.bind(this)]]):this._subscribe=M([window],[["mousemove",this.onMouseMove.bind(this)]])},t.prototype._handleCallback=function(){var e;this.callback&&this.callback({args:[this.currentIndex],event:this.event,isMoving:this.isActive,target:null===(e=this.event)||void 0===e?void 0:e.target,mouseX:this.movement.x,mouseY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onMouseMove=function(e){var t=this,n=this.targetElements.find((function(t){return t===e.target}));n&&(this.currentIndex=this.targetElements.indexOf(n)),this.event=e;var i=Date.now(),r=Math.min(i-this.lastTimeStamp,64);this.lastTimeStamp=i;var o=r/1e3,a=e.clientX,f=e.clientY;this.movement={x:a,y:f},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:_(s/o/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(l/o/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(C),L=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.direction=I(0,0),t.velocity=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=M([this.targetElement],[["scroll",this.scrollElementListener.bind(this)]]):this._subscribe=M([window],[["scroll",this.scrollListener.bind(this)]])},t.prototype._handleCallback=function(){this.callback&&this.callback({isScrolling:this.isActive,scrollX:this.movement.x,scrollY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onScroll=function(e){var t=this,n=e.x,i=e.y,r=Date.now(),o=Math.min(r-this.lastTimeStamp,64);this.lastTimeStamp=r;var a=o/1e3;this.movement={x:n,y:i},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var f=this.movement.x-this.previousMovement.x,s=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(f),y:Math.sign(s)},this.velocity={x:_(f/a/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(s/a/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t.prototype.scrollListener=function(){var e=window.pageYOffset,t=window.pageXOffset;this.onScroll({x:t,y:e})},t.prototype.scrollElementListener=function(){var e,t,n=(null===(e=this.targetElement)||void 0===e?void 0:e.scrollLeft)||0,i=(null===(t=this.targetElement)||void 0===t?void 0:t.scrollTop)||0;this.onScroll({x:n,y:i})},t}(C),A=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.direction=I(0,0),t.velocity=I(0,0),t.delta=I(0,0),t.offset=I(0,0),t.translation=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement&&(this._subscribe=M([this.targetElement],[["wheel",this.onWheel.bind(this)]]))},t.prototype._handleCallback=function(){this.callback&&this.callback({target:this.targetElement,isWheeling:this.isActive,deltaX:this.delta.x,deltaY:this.delta.y,directionX:this.direction.x,directionY:this.direction.y,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.offset.x,offsetY:this.offset.y,velocityX:this.velocity.x,velocityY:this.velocity.y})},t.prototype.onWheel=function(e){var t=this,n=e.deltaX,i=e.deltaY,r=e.deltaMode,o=Date.now(),a=Math.min(o-this.lastTimeStamp,64);this.lastTimeStamp=o;var f=a/1e3;this.isActive=!0,-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.translation={x:t.offset.x,y:t.offset.y},t._handleCallback(),t.velocity={x:0,y:0},t.movement={x:0,y:0}}),200),1===r?(n*=40,i*=40):2===r&&(n*=800,i*=800),this.delta={x:n,y:i},this.movement={x:this.movement.x+n,y:this.movement.y+i},this.offset={x:this.translation.x+this.movement.x,y:this.translation.y+this.movement.y};var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:_(s/f/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(l/f/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(C),Y=function(e){var t=i.useRef(),n=i.useRef([]),r=i.useRef(new Map).current;return i.useEffect((function(){var t,n;try{for(var i=f(r.entries()),o=i.next();!o.done;o=i.next()){var a=s(o.value,2)[1],l=a.keyIndex,u=a.gesture,c=s(e[l],3)[2];u.applyCallback(c)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}}),[e]),i.useEffect((function(){return e.forEach((function(e,i){var o=s(e,4),a=o[0],f=o[1],l=o[2],u=o[3];queueMicrotask((function(){return r.set(a,{keyIndex:i,gesture:f,unsubscribe:f.applyGesture({targetElement:t.current,targetElements:n.current,callback:l,config:u})})}))})),function(){var e,t;try{for(var n=f(r.entries()),i=n.next();!i.done;i=n.next()){var o=s(i.value,2)[1].unsubscribe;o&&o()}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}}})),function(e){return null==e?{ref:t}:(n.current[e]=n.current[e]||i.createRef(),{ref:n.current[e]})}};Object.defineProperty(exports,"Easing",{enumerable:!0,get:function(){return e.Easing}}),Object.defineProperty(exports,"animate",{enumerable:!0,get:function(){return e.motion}}),Object.defineProperty(exports,"makeAnimated",{enumerable:!0,get:function(){return e.makeMotion}}),exports.AnimationConfig=h,exports.bin=function(e){return e?1:0},exports.clamp=_,exports.interpolateNumbers=function(e,t,n,i){var r,o,a=null==i?void 0:i.extrapolate,l=null==i?void 0:i.extrapolateLeft,u=null==i?void 0:i.extrapolateRight,c=function(e,t,n){var i=t.length,r=[];e<t[0]?r=[t[0],t[1],n[0],n[1]]:e>t[i-1]&&(r=[t[i-2],t[i-1],n[i-2],n[i-1]]);for(var o=1;o<i;++o)if(e<=t[o]){r=[t[o-1],t[o],n[o-1],n[o]];break}return r}(e,t,n),h="extend";void 0!==l?h=l:void 0!==a&&(h=a);var v,d="extend";if(void 0!==u?d=u:void 0!==a&&(d=a),n.length){if("number"==typeof n[0])return b(e,c,h,d);if(Array.isArray(n[0]))return x(e,c,h,d);var m=s(c,4),p=m[0],y=m[1],g=m[2],M=m[3],_=k(g),O=k(M),I=w(_);if(v=O,w(_).trim().replace(/\s/g,"")===w(v).trim().replace(/\s/g,"")){var C=E(_),S=E(O),T=x(e,[p,y,C,S],h,d);try{for(var L=f(T),A=L.next();!A.done;A=L.next()){var Y=A.value;I=I.replace("$",Y)}}catch(e){r={error:e}}finally{try{A&&!A.done&&(o=L.return)&&o.call(L)}finally{if(r)throw r.error}}return I}throw new Error("Output range doesn't match string format!")}throw new Error("Output range cannot be Empty")},exports.mix=function(e,t,n){return t*(1-e)+n*e},exports.move=function(e,t,n){var i=e[t],r=e.length,o=t-n;if(o>0)return l(l(l(l([],s(e.slice(0,n)),!1),[i],!1),s(e.slice(n,t)),!1),s(e.slice(t+1,r)),!1);if(o<0){var a=n+1;return l(l(l(l([],s(e.slice(0,t)),!1),s(e.slice(t+1,a)),!1),[i],!1),s(e.slice(a,r)),!1)}return e},exports.rubberClamp=function(e,t,n,i){return void 0===i&&(i=.15),0===i?_(e,t,n):e<t?-O(t-e,n-t,i)+t:e>n?+O(e-n,n-t,i)+n:e},exports.snapTo=function(e,t,n){var i=e+.2*t,r=function(e){return Math.abs(e-i)},o=n.map(r),a=Math.min.apply(Math,l([],s(o),!1));return n.reduce((function(e,t){return r(t)===a?t:e}))},exports.useAnimatedList=function(e,n,i){var r;void 0===i&&(i={});var o="object"==typeof i.from&&null!==i.from,l=o?i.from:{value:null!==(r=i.from)&&void 0!==r?r:0},c={},h={};Object.keys(l).forEach((function(e){var t,n,r=o?null===(t=i.enter)||void 0===t?void 0:t[e]:i.enter;c[e]="number"==typeof r?v(r):r||v(1);var a=o?null===(n=i.exit)||void 0===n?void 0:n[e]:i.exit;h[e]="number"==typeof a?v(a):a||v(0)}));var d=t.useRef(new Map),m=t.useRef(new Set),p=s(t.useState(0),2)[1];return t.useLayoutEffect((function(){var t,i,r=new Set(e.map(n)),o=function(e){var t=n(e);if(d.current.has(t))d.current.get(t).item=e;else{var i={};Object.entries(l).forEach((function(e){var t=s(e,2),n=t[0],r=t[1],o=new u(r);o.set(c[n]),i[n]=o})),d.current.set(t,{values:i,item:e}),p((function(e){return e+1}))}};try{for(var v=f(e),y=v.next();!y.done;y=v.next()){o(y.value)}}catch(e){t={error:e}}finally{try{y&&!y.done&&(i=v.return)&&i.call(v)}finally{if(t)throw t.error}}d.current.forEach((function(e,t){var n=e.values;if(!r.has(t)&&!m.current.has(t)){m.current.add(t);var i=Object.keys(n);i.forEach((function(e,r){var o=h[e];n[e].set(a(a({},o),{options:a(a({},o.options),{onComplete:function(){var a,f;r===i.length-1&&(d.current.delete(t),m.current.delete(t),p((function(e){return e+1})),null===(f=null===(a=o.options)||void 0===a?void 0:a.onComplete)||void 0===f||f.call(a),n[e].destroy())}})}))}))}}))}),[e,n,JSON.stringify(l),JSON.stringify(c),JSON.stringify(h)]),Array.from(d.current.entries()).map((function(e){var t=s(e,2),n=t[0],i=t[1],r=i.values,a=i.item;if(!o)return{key:n,item:a,animation:r.value.value};var f={};return Object.entries(r).forEach((function(e){var t=s(e,2),n=t[0],i=t[1];f[n]=i.value})),{key:n,item:a,animation:f}}))},exports.useDrag=function(e,t){var n=i.useRef(new S).current;return Y([["drag",n,e,t]])},exports.useGesture=function(e){var t=e.onDrag,n=e.onWheel,r=e.onScroll,o=e.onMouseMove,a=i.useRef(new S).current,f=i.useRef(new A).current,s=i.useRef(new L).current,l=i.useRef(new T).current;return Y([["drag",a,t],["wheel",f,n],["scroll",s,r],["move",l,o]])},exports.useMeasure=function(e,n){var i=t.useRef(null),r=t.useRef([]),o=t.useRef(e);return t.useEffect((function(){return o.current=e,function(){o.current=function(){return!1}}}),n),t.useEffect((function(){var e=i.current||document.documentElement,t=r.current,n=new ResizeObserver((function(t){var n=s(t,1)[0].target.getBoundingClientRect(),i=n.left,r=n.top,a=n.width,f=n.height,l=window.pageXOffset,u=window.pageYOffset;if(o){if(e===document.documentElement)return;o.current({left:i+l,top:r+u,width:a,height:f,vLeft:i,vTop:r})}})),a=new ResizeObserver((function(e){var t=[],n=[],i=[],r=[],a=[],f=[];e.forEach((function(e){var o=e.target.getBoundingClientRect(),s=o.left,l=o.top,u=o.width,c=o.height,h=s+window.pageXOffset,v=l+window.pageYOffset;t.push(h),n.push(v),i.push(u),r.push(c),a.push(s),f.push(l)})),o&&o.current({left:t,top:n,width:i,height:r,vLeft:a,vTop:f})}));return e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){a.observe(e.current)})):n.observe(e)),function(){e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){a.unobserve(e.current)})):n.unobserve(e))}}),[]),function(e){return null==e?{ref:i}:(r.current[e]=r.current[e]||t.createRef(),{ref:r.current[e]})}},exports.useMount=function(e,n){var i;void 0===n&&(n={});var r=s(t.useState(e),2),o=r[0],f=r[1],l="object"==typeof n.from&&null!==n.from,u=l?n.from:{value:null!==(i=n.from)&&void 0!==i?i:0},h={},d={};Object.keys(u).forEach((function(e){var t,i;h[e]=l?null===(t=n.enter)||void 0===t?void 0:t[e]:n.enter,null==h[e]&&(h[e]=1),d[e]=l?null===(i=n.exit)||void 0===i?void 0:i[e]:n.exit,null==d[e]&&(d[e]=0)}));var m=s(c(u),2),p=m[0],y=m[1];if(t.useLayoutEffect((function(){var t=Object.keys(u);e?(f(!0),queueMicrotask((function(){var e={};t.forEach((function(t){var n=h[t];e[t]="object"==typeof n&&"type"in n?n:v(n)})),y(e)}))):queueMicrotask((function(){var e={};t.forEach((function(n,i){var r=d[n],o="object"==typeof r&&"type"in r?r:v(r);e[n]=a(a({},o),{options:a(a({},o.options),{onComplete:function(){var e,n;i===t.length-1&&(f(!1),null===(n=null===(e=o.options)||void 0===e?void 0:e.onComplete)||void 0===n||n.call(e))}})})})),y(e)}))}),[e,JSON.stringify(h),JSON.stringify(d)]),!l){var g=p.value;return function(e){return e(g,o)}}return function(e){return e(p,o)}},exports.useMouseMove=function(e){var t=i.useRef(new T).current;return Y([["move",t,e]])},exports.useOutsideClick=function(e,n,i){var r=t.useRef();r.current||(r.current=n),t.useEffect((function(){return r.current=n,function(){r.current=function(){return!1}}}),i),t.useEffect((function(){var t=M([document],[["mousedown",function(t){var n=t.target;n&&n.isConnected&&(e.current&&!e.current.contains(n)&&r.current&&r.current(t))}]]);return function(){return t&&t()}}),[])},exports.useScroll=function(e){var t=i.useRef(new L).current;return Y([["scroll",t,e]])},exports.useValue=c,exports.useWheel=function(e){var t=i.useRef(new A).current;return Y([["wheel",t,e]])},exports.useWindowDimension=function(e,n){var i=t.useRef({width:0,height:0,innerWidth:0,innerHeight:0}),r=t.useRef(e);t.useEffect((function(){return r.current=e,function(){r.current=function(){return!1}}}),n),t.useEffect((function(){var e=new ResizeObserver((function(e){var t=s(e,1)[0].target,n=t.clientWidth,o=t.clientHeight,f=window.innerWidth,l=window.innerHeight;i.current={width:n,height:o,innerWidth:f,innerHeight:l},r&&r.current(a({},i.current))}));return e.observe(document.documentElement),function(){return e.unobserve(document.documentElement)}}),[])},exports.withDecay=function(e){return{type:"decay",options:{velocity:e.velocity,onStart:null==e?void 0:e.onStart,onChange:null==e?void 0:e.onChange,onComplete:null==e?void 0:e.onRest,clamp:null==e?void 0:e.clamp}}},exports.withDelay=function(e){return{type:"delay",options:{delay:e}}},exports.withEase=function(e,t){return v(e,a(a({},t),h.Spring.EASE))},exports.withLoop=function(e,t,n){return{type:"loop",options:{controller:e,iterations:t,onStart:null==n?void 0:n.onStart,onChange:null==n?void 0:n.onChange,onComplete:null==n?void 0:n.onRest}}},exports.withSequence=function(e,t){return{type:"sequence",options:{steps:e,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}},exports.withSpring=v,exports.withTiming=function(e,t){var n;return{type:"timing",to:e,options:{duration:null!==(n=null==t?void 0:t.duration)&&void 0!==n?n:300,easing:null==t?void 0:t.easing,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}};
1
+ var e=require("@raidipesh78/re-motion"),t=require("react");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var i=n(t),r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},a.apply(this,arguments)};function f(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function s(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,o=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)a.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return a}function l(e,t,n){if(n||2===arguments.length)for(var i,r=0,o=t.length;r<o;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var u=function(){function t(t){this.animation=new e.MotionValue(t)}return t.prototype.set=function(t){var n,i,r,o,a,f,s=this;if(!(t instanceof e.MotionValue))if(null===(n=this.unsubscribe)||void 0===n||n.call(this),this.unsubscribe=void 0,"object"==typeof t&&null!==t){var l=t.type,u=t.to,c=t.options;if((null==c?void 0:c.onChange)&&(this.unsubscribe=this.animation.subscribe(c.onChange)),"sequence"===l){var h=(null!==(i=null==c?void 0:c.steps)&&void 0!==i?i:[]).map((function(e){return s.buildDriver(e)})),v=e.sequence(h);return(null==c?void 0:c.onComplete)&&(null===(r=v.setOnComplete)||void 0===r||r.call(v,null==c?void 0:c.onComplete)),void v.start()}if("loop"===l){var d=this.buildDriver(c.controller);v=e.loop(d,null==c?void 0:c.iterations);return(null==c?void 0:c.onComplete)&&(null===(o=v.setOnComplete)||void 0===o||o.call(v,null==c?void 0:c.onComplete)),void v.start()}null===(f=(a=this.buildDriver({type:l,to:u,options:c})).start)||void 0===f||f.call(a)}else this.animation.set(t)},t.prototype.buildDriver=function(t){var n,i,r=this.animation;switch(t.type){case"spring":return e.spring(r,t.to,t.options);case"timing":return e.timing(r,t.to,t.options);case"decay":return e.decay(r,null===(n=t.options)||void 0===n?void 0:n.velocity,t.options);case"delay":return e.delay(null===(i=t.options)||void 0===i?void 0:i.delay);case"sequence":return e.sequence(t.options.steps.map(this.buildDriver.bind(this)));default:throw new Error('Unsupported driver type "'.concat(t.type,'"'))}},Object.defineProperty(t.prototype,"value",{get:function(){return this.animation},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"current",{get:function(){return this.animation.current},enumerable:!1,configurable:!0}),t.prototype.destroy=function(){var e;null===(e=this.unsubscribe)||void 0===e||e.call(this),this.unsubscribe=void 0},t}();function c(e){var n,i,r=t.useRef(null);if(null===r.current){var o=[];if(Array.isArray(e))e.forEach((function(e,t){o.push([String(t),new u(e)])}));else if("object"==typeof e)try{for(var a=f(Object.entries(e)),l=a.next();!l.done;l=a.next()){var c=s(l.value,2),h=c[0],v=c[1];o.push([h,new u(v)])}}catch(e){n={error:e}}finally{try{l&&!l.done&&(i=a.return)&&i.call(a)}finally{if(n)throw n.error}}else o.push(["__0",new u(e)]);r.current=o}t.useEffect((function(){return function(){r.current.forEach((function(e){return s(e,2)[1].destroy()}))}}),[]);var d=function(){var t,n,i=r.current;if(Array.isArray(e))return i.map((function(e){return s(e,2)[1].value}));if("object"==typeof e){var o={};try{for(var a=f(i),l=a.next();!l.done;l=a.next()){var u=s(l.value,2),c=u[0],h=u[1];o[c]=h.value}}catch(e){t={error:e}}finally{try{l&&!l.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}return o}return i[0][1].value}();return[d,function(t){var n,i,o=r.current;if(Array.isArray(e)){var a=t;Object.entries(a).forEach((function(e){var t,n=s(e,2),i=n[0],r=n[1],a=Number(i);isNaN(a)||void 0===r||null===(t=o[a])||void 0===t||t[1].set(r)}))}else if("object"==typeof e&&null!==e){a=t;var l=function(e,t){var n=o.find((function(t){return s(t,1)[0]===e}));n&&void 0!==t&&n[1].set(t)};try{for(var u=f(Object.entries(a)),c=u.next();!c.done;c=u.next()){var h=s(c.value,2);l(h[0],h[1])}}catch(e){n={error:e}}finally{try{c&&!c.done&&(i=u.return)&&i.call(u)}finally{if(n)throw n.error}}}else o[0][1].set(t)}]}var h={Timing:{BOUNCE:{duration:500,easing:e.Easing.bounce},EASE_IN:{duration:500,easing:e.Easing.in(e.Easing.ease)},EASE_OUT:{duration:500,easing:e.Easing.out(e.Easing.ease)},EASE_IN_OUT:{duration:500,easing:e.Easing.inOut(e.Easing.ease)},POWER1:{duration:500,easing:e.Easing.bezier(.17,.42,.51,.97)},POWER2:{duration:500,easing:e.Easing.bezier(.07,.11,.13,1)},POWER3:{duration:500,easing:e.Easing.bezier(.09,.7,.16,1.04)},POWER4:{duration:500,easing:e.Easing.bezier(.05,.54,0,1.03)},LINEAR:{duration:500,easing:e.Easing.linear}},Spring:{ELASTIC:{mass:1,friction:18,tension:250},EASE:{mass:1,friction:26,tension:170},STIFF:{mass:1,friction:18,tension:350},WOBBLE:{mass:1,friction:8,tension:250}}},v=function(e,t){var n,i,r;return{type:"spring",to:e,options:{stiffness:null!==(n=null==t?void 0:t.tension)&&void 0!==n?n:100,damping:null!==(i=null==t?void 0:t.friction)&&void 0!==i?i:10,mass:null!==(r=null==t?void 0:t.mass)&&void 0!==r?r:1,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}};var d=/[+-]?\d+(\.\d+)?|[\s]?\.\d+|#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})/gi,m=/#[a-f\d]{3,}|transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|burntsienna|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen/gi,p={transparent:"#00000000",aliceblue:"#f0f8ffff",antiquewhite:"#faebd7ff",aqua:"#00ffffff",aquamarine:"#7fffd4ff",azure:"#f0ffffff",beige:"#f5f5dcff",bisque:"#ffe4c4ff",black:"#000000ff",blanchedalmond:"#ffebcdff",blue:"#0000ffff",blueviolet:"#8a2be2ff",brown:"#a52a2aff",burlywood:"#deb887ff",burntsienna:"#ea7e5dff",cadetblue:"#5f9ea0ff",chartreuse:"#7fff00ff",chocolate:"#d2691eff",coral:"#ff7f50ff",cornflowerblue:"#6495edff",cornsilk:"#fff8dcff",crimson:"#dc143cff",cyan:"#00ffffff",darkblue:"#00008bff",darkcyan:"#008b8bff",darkgoldenrod:"#b8860bff",darkgray:"#a9a9a9ff",darkgreen:"#006400ff",darkgrey:"#a9a9a9ff",darkkhaki:"#bdb76bff",darkmagenta:"#8b008bff",darkolivegreen:"#556b2fff",darkorange:"#ff8c00ff",darkorchid:"#9932ccff",darkred:"#8b0000ff",darksalmon:"#e9967aff",darkseagreen:"#8fbc8fff",darkslateblue:"#483d8bff",darkslategray:"#2f4f4fff",darkslategrey:"#2f4f4fff",darkturquoise:"#00ced1ff",darkviolet:"#9400d3ff",deeppink:"#ff1493ff",deepskyblue:"#00bfffff",dimgray:"#696969ff",dimgrey:"#696969ff",dodgerblue:"#1e90ffff",firebrick:"#b22222ff",floralwhite:"#fffaf0ff",forestgreen:"#228b22ff",fuchsia:"#ff00ffff",gainsboro:"#dcdcdcff",ghostwhite:"#f8f8ffff",gold:"#ffd700ff",goldenrod:"#daa520ff",gray:"#808080ff",green:"#008000ff",greenyellow:"#adff2fff",grey:"#808080ff",honeydew:"#f0fff0ff",hotpink:"#ff69b4ff",indianred:"#cd5c5cff",indigo:"#4b0082ff",ivory:"#fffff0ff",khaki:"#f0e68cff",lavender:"#e6e6faff",lavenderblush:"#fff0f5ff",lawngreen:"#7cfc00ff",lemonchiffon:"#fffacdff",lightblue:"#add8e6ff",lightcoral:"#f08080ff",lightcyan:"#e0ffffff",lightgoldenrodyellow:"#fafad2ff",lightgray:"#d3d3d3ff",lightgreen:"#90ee90ff",lightgrey:"#d3d3d3ff",lightpink:"#ffb6c1ff",lightsalmon:"#ffa07aff",lightseagreen:"#20b2aaff",lightskyblue:"#87cefaff",lightslategray:"#778899ff",lightslategrey:"#778899ff",lightsteelblue:"#b0c4deff",lightyellow:"#ffffe0ff",lime:"#00ff00ff",limegreen:"#32cd32ff",linen:"#faf0e6ff",magenta:"#ff00ffff",maroon:"#800000ff",mediumaquamarine:"#66cdaaff",mediumblue:"#0000cdff",mediumorchid:"#ba55d3ff",mediumpurple:"#9370dbff",mediumseagreen:"#3cb371ff",mediumslateblue:"#7b68eeff",mediumspringgreen:"#00fa9aff",mediumturquoise:"#48d1ccff",mediumvioletred:"#c71585ff",midnightblue:"#191970ff",mintcream:"#f5fffaff",mistyrose:"#ffe4e1ff",moccasin:"#ffe4b5ff",navajowhite:"#ffdeadff",navy:"#000080ff",oldlace:"#fdf5e6ff",olive:"#808000ff",olivedrab:"#6b8e23ff",orange:"#ffa500ff",orangered:"#ff4500ff",orchid:"#da70d6ff",palegoldenrod:"#eee8aaff",palegreen:"#98fb98ff",paleturquoise:"#afeeeeff",palevioletred:"#db7093ff",papayawhip:"#ffefd5ff",peachpuff:"#ffdab9ff",peru:"#cd853fff",pink:"#ffc0cbff",plum:"#dda0ddff",powderblue:"#b0e0e6ff",purple:"#800080ff",rebeccapurple:"#663399ff",red:"#ff0000ff",rosybrown:"#bc8f8fff",royalblue:"#4169e1ff",saddlebrown:"#8b4513ff",salmon:"#fa8072ff",sandybrown:"#f4a460ff",seagreen:"#2e8b57ff",seashell:"#fff5eeff",sienna:"#a0522dff",silver:"#c0c0c0ff",skyblue:"#87ceebff",slateblue:"#6a5acdff",slategray:"#708090ff",slategrey:"#708090ff",snow:"#fffafaff",springgreen:"#00ff7fff",steelblue:"#4682b4ff",tan:"#d2b48cff",teal:"#008080ff",thistle:"#d8bfd8ff",tomato:"#ff6347ff",turquoise:"#40e0d0ff",violet:"#ee82eeff",wheat:"#f5deb3ff",white:"#ffffffff",whitesmoke:"#f5f5f5ff",yellow:"#ffff00ff",yellowgreen:"#9acd32ff"};function y(e){var t=function(e){return e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(function(e,t,n,i){return"#"+t+t+n+n+i+i}))}(e),n=function(e){return 7===e.length?e+"FF":e}(t),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n);return{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16),a:parseInt(i[4],16)/255}}function g(e){var t=e.r,n=e.g,i=e.b,r=e.a;return"#"+(256|t).toString(16).slice(1)+(256|n).toString(16).slice(1)+(256|i).toString(16).slice(1)+(255*r|256).toString(16).slice(1)}var b=function(e,t,n,i){var r=s(t,4),o=r[0],a=r[1],f=r[2],l=r[3],u=e;if(u<o){if("identity"===n)return u;"clamp"===n&&(u=o)}if(u>a){if("identity"===i)return u;"clamp"===i&&(u=a)}return f===l?f:o===a?e<=o?f:l:(o===-1/0?u=-u:a===1/0?u-=o:u=(u-o)/(a-o),f===-1/0?u=-u:l===1/0?u+=f:u=u*(l-f)+f,u)},x=function(e,t,n,i){var r=s(t,4),o=r[0],a=r[1],f=r[2],l=r[3];if(f.length===l.length)return f.map((function(t,r){return"string"==typeof t?function(e,t){var n=s(t,4),i=n[0],r=n[1],o=n[2],a=n[3],f=y(o),l=y(a);return g({r:b(e,[i,r,f.r,l.r],"clamp","clamp"),g:b(e,[i,r,f.g,l.g],"clamp","clamp"),b:b(e,[i,r,f.b,l.b],"clamp","clamp"),a:b(e,[i,r,f.a,l.a],"clamp","clamp")})}(e,[o,a,t,l[r]]):b(e,[o,a,t,l[r]],n,i)}));throw new Error("Array length doesn't match")},w=function(e){return e.replace(d,"$")},E=function(e){return e.match(d).map((function(e){return-1!==e.indexOf("#")?e:Number(e)}))},k=function(e){return e.replace(m,(function(e){if(-1!==e.indexOf("#"))return g(y(e));if(Object.prototype.hasOwnProperty.call(p,e))return p[e];throw new Error("String cannot be parsed!")}))};function M(e,t){var n=new Map;return t.forEach((function(t){var i=s(t,3),r=i[0],o=i[1],a=i[2],f=void 0!==a&&a;n.set(r,function(e,t,n,i){return void 0===i&&(i=!1),e.forEach((function(e){e.addEventListener(t,n,i)})),function(){e.forEach((function(e){e.removeEventListener(t,n,i)}))}}(e,r,o,f))})),function(e){var t,i;try{for(var r=f(n.entries()),o=r.next();!o.done;o=r.next()){var a=s(o.value,2),l=a[0],u=a[1];if(!e)return void u();-1!==e.indexOf(l)&&u()}}catch(e){t={error:e}}finally{try{o&&!o.done&&(i=r.return)&&i.call(r)}finally{if(t)throw t.error}}}}function _(e,t,n){return Math.min(Math.max(e,t),n)}function O(e,t,n){return 0===t||Math.abs(t)===1/0?function(e,t){return Math.pow(e,5*t)}(e,n):e*t*n/(t+n*e)}var I=function(e,t){return{x:e,y:t}},C=function(){function e(){this.lastTimeStamp=Date.now(),this.isActive=!1,this.targetElements=[]}return e.prototype._initEvents=function(){},e.prototype._cancelEvents=function(){this._subscribe&&this._subscribe()},e.prototype.applyCallback=function(e){this.callback=e},e.prototype.applyGesture=function(e){var t=this,n=e.targetElement,i=e.targetElements,r=e.callback,o=e.config;return this.targetElement=n,this.targetElements=i.map((function(e){return e.current})),this.callback=r,this.config=o,this._initEvents(),function(){return t._subscribe&&t._subscribe()}},e._VELOCITY_LIMIT=20,e}(),S=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movementStart=I(0,0),t.initialMovement=I(0,0),t.movement=I(0,0),t.previousMovement=I(0,0),t.translation=I(0,0),t.offset=I(0,0),t.velocity=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){(this.targetElement||this.targetElements.length>0)&&(this._subscribe=M([window],[["mousedown",this.pointerDown.bind(this)],["mousemove",this.pointerMove.bind(this)],["mouseup",this.pointerUp.bind(this)],["touchstart",this.pointerDown.bind(this),{passive:!1}],["touchmove",this.pointerMove.bind(this),{passive:!1}],["touchend",this.pointerUp.bind(this)]]))},t.prototype._cancelEvents=function(){this._subscribe&&this._subscribe(["mousedown","mousemove","touchstart","touchmove"])},t.prototype._handleCallback=function(){var e=this;this.callback&&this.callback({args:[this.currentIndex],down:this.isActive,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.translation.x,offsetY:this.translation.y,velocityX:this.velocity.x,velocityY:this.velocity.y,distanceX:Math.abs(this.movement.x),distanceY:Math.abs(this.movement.y),directionX:Math.sign(this.movement.x),directionY:Math.sign(this.movement.y),cancel:function(){e._cancelEvents()}})},t.prototype.pointerDown=function(e){var t;"touchstart"===e.type?this.movementStart={x:e.touches[0].clientX,y:e.touches[0].clientY}:this.movementStart={x:e.clientX,y:e.clientY},this.movement={x:0,y:0},this.offset={x:this.translation.x,y:this.translation.y},this.previousMovement={x:0,y:0},this.velocity={x:0,y:0};var n=this.targetElements.find((function(t){return t===e.target}));if(e.target===this.targetElement||n){this.isActive=!0,e.preventDefault(),n&&(this.currentIndex=this.targetElements.indexOf(n));var i=(null===(t=this.config)||void 0===t?void 0:t.initial)&&this.config.initial(),r=null==i?void 0:i.movementX,o=null==i?void 0:i.movementY;this.initialMovement={x:null!=r?r:0,y:null!=o?o:0},this.movement={x:this.initialMovement.x,y:this.initialMovement.y},this.previousMovement={x:this.initialMovement.x,y:this.initialMovement.y},this._handleCallback()}},t.prototype.pointerMove=function(e){if(this.isActive){e.preventDefault();var t=Date.now(),n=_(t-this.lastTimeStamp,.1,64);this.lastTimeStamp=t;var i=n/1e3;"touchmove"===e.type?this.movement={x:this.initialMovement.x+(e.touches[0].clientX-this.movementStart.x),y:this.initialMovement.y+(e.touches[0].clientY-this.movementStart.y)}:this.movement={x:this.initialMovement.x+(e.clientX-this.movementStart.x),y:this.initialMovement.y+(e.clientY-this.movementStart.y)},this.translation={x:this.offset.x+this.movement.x,y:this.offset.y+this.movement.y},this.velocity={x:_((this.movement.x-this.previousMovement.x)/i/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_((this.movement.y-this.previousMovement.y)/i/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()}},t.prototype.pointerUp=function(){this.isActive&&(this.isActive=!1,this._handleCallback(),this._cancelEvents(),this._initEvents())},t}(C),T=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.velocity=I(0,0),t.direction=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=M([this.targetElement],[["mousemove",this.onMouseMove.bind(this)]]):this.targetElements.length>0?this._subscribe=M(this.targetElements,[["mousemove",this.onMouseMove.bind(this)]]):this._subscribe=M([window],[["mousemove",this.onMouseMove.bind(this)]])},t.prototype._handleCallback=function(){var e;this.callback&&this.callback({args:[this.currentIndex],event:this.event,isMoving:this.isActive,target:null===(e=this.event)||void 0===e?void 0:e.target,mouseX:this.movement.x,mouseY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onMouseMove=function(e){var t=this,n=this.targetElements.find((function(t){return t===e.target}));n&&(this.currentIndex=this.targetElements.indexOf(n)),this.event=e;var i=Date.now(),r=Math.min(i-this.lastTimeStamp,64);this.lastTimeStamp=i;var o=r/1e3,a=e.clientX,f=e.clientY;this.movement={x:a,y:f},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:_(s/o/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(l/o/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(C),L=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.direction=I(0,0),t.velocity=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement?this._subscribe=M([this.targetElement],[["scroll",this.scrollElementListener.bind(this)]]):this._subscribe=M([window],[["scroll",this.scrollListener.bind(this)]])},t.prototype._handleCallback=function(){this.callback&&this.callback({isScrolling:this.isActive,scrollX:this.movement.x,scrollY:this.movement.y,velocityX:this.velocity.x,velocityY:this.velocity.y,directionX:this.direction.x,directionY:this.direction.y})},t.prototype.onScroll=function(e){var t=this,n=e.x,i=e.y,r=Date.now(),o=Math.min(r-this.lastTimeStamp,64);this.lastTimeStamp=r;var a=o/1e3;this.movement={x:n,y:i},-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.direction={x:0,y:0},t.velocity={x:0,y:0},t._handleCallback()}),250);var f=this.movement.x-this.previousMovement.x,s=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(f),y:Math.sign(s)},this.velocity={x:_(f/a/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(s/a/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t.prototype.scrollListener=function(){var e=window.pageYOffset,t=window.pageXOffset;this.onScroll({x:t,y:e})},t.prototype.scrollElementListener=function(){var e,t,n=(null===(e=this.targetElement)||void 0===e?void 0:e.scrollLeft)||0,i=(null===(t=this.targetElement)||void 0===t?void 0:t.scrollTop)||0;this.onScroll({x:n,y:i})},t}(C),A=function(e){function t(){var t=e.apply(this,l([],s(arguments),!1))||this;return t.movement=I(0,0),t.previousMovement=I(0,0),t.direction=I(0,0),t.velocity=I(0,0),t.delta=I(0,0),t.offset=I(0,0),t.translation=I(0,0),t}return o(t,e),t.prototype._initEvents=function(){this.targetElement&&(this._subscribe=M([this.targetElement],[["wheel",this.onWheel.bind(this)]]))},t.prototype._handleCallback=function(){this.callback&&this.callback({target:this.targetElement,isWheeling:this.isActive,deltaX:this.delta.x,deltaY:this.delta.y,directionX:this.direction.x,directionY:this.direction.y,movementX:this.movement.x,movementY:this.movement.y,offsetX:this.offset.x,offsetY:this.offset.y,velocityX:this.velocity.x,velocityY:this.velocity.y})},t.prototype.onWheel=function(e){var t=this,n=e.deltaX,i=e.deltaY,r=e.deltaMode,o=Date.now(),a=Math.min(o-this.lastTimeStamp,64);this.lastTimeStamp=o;var f=a/1e3;this.isActive=!0,-1!==this.isActiveID&&(this.isActive=!0,clearTimeout(this.isActiveID)),this.isActiveID=setTimeout((function(){t.isActive=!1,t.translation={x:t.offset.x,y:t.offset.y},t._handleCallback(),t.velocity={x:0,y:0},t.movement={x:0,y:0}}),200),1===r?(n*=40,i*=40):2===r&&(n*=800,i*=800),this.delta={x:n,y:i},this.movement={x:this.movement.x+n,y:this.movement.y+i},this.offset={x:this.translation.x+this.movement.x,y:this.translation.y+this.movement.y};var s=this.movement.x-this.previousMovement.x,l=this.movement.y-this.previousMovement.y;this.direction={x:Math.sign(s),y:Math.sign(l)},this.velocity={x:_(s/f/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT),y:_(l/f/1e3,-1*C._VELOCITY_LIMIT,C._VELOCITY_LIMIT)},this.previousMovement={x:this.movement.x,y:this.movement.y},this._handleCallback()},t}(C),Y=function(e){var t=i.useRef(),n=i.useRef([]),r=i.useRef(new Map).current;return i.useEffect((function(){var t,n;try{for(var i=f(r.entries()),o=i.next();!o.done;o=i.next()){var a=s(o.value,2)[1],l=a.keyIndex,u=a.gesture,c=s(e[l],3)[2];u.applyCallback(c)}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(t)throw t.error}}}),[e]),i.useEffect((function(){return e.forEach((function(e,i){var o=s(e,4),a=o[0],f=o[1],l=o[2],u=o[3];queueMicrotask((function(){return r.set(a,{keyIndex:i,gesture:f,unsubscribe:f.applyGesture({targetElement:t.current,targetElements:n.current,callback:l,config:u})})}))})),function(){var e,t;try{for(var n=f(r.entries()),i=n.next();!i.done;i=n.next()){var o=s(i.value,2)[1].unsubscribe;o&&o()}}catch(t){e={error:t}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}}})),function(e){return null==e?{ref:t}:(n.current[e]=n.current[e]||i.createRef(),{ref:n.current[e]})}};Object.defineProperty(exports,"Easing",{enumerable:!0,get:function(){return e.Easing}}),Object.defineProperty(exports,"animate",{enumerable:!0,get:function(){return e.motion}}),Object.defineProperty(exports,"makeAnimated",{enumerable:!0,get:function(){return e.makeMotion}}),exports.AnimationConfig=h,exports.bin=function(e){return e?1:0},exports.clamp=_,exports.interpolateNumbers=function(e,t,n,i){var r,o,a=null==i?void 0:i.extrapolate,l=null==i?void 0:i.extrapolateLeft,u=null==i?void 0:i.extrapolateRight,c=function(e,t,n){var i=t.length,r=[];e<t[0]?r=[t[0],t[1],n[0],n[1]]:e>t[i-1]&&(r=[t[i-2],t[i-1],n[i-2],n[i-1]]);for(var o=1;o<i;++o)if(e<=t[o]){r=[t[o-1],t[o],n[o-1],n[o]];break}return r}(e,t,n),h="extend";void 0!==l?h=l:void 0!==a&&(h=a);var v,d="extend";if(void 0!==u?d=u:void 0!==a&&(d=a),n.length){if("number"==typeof n[0])return b(e,c,h,d);if(Array.isArray(n[0]))return x(e,c,h,d);var m=s(c,4),p=m[0],y=m[1],g=m[2],M=m[3],_=k(g),O=k(M),I=w(_);if(v=O,w(_).trim().replace(/\s/g,"")===w(v).trim().replace(/\s/g,"")){var C=E(_),S=E(O),T=x(e,[p,y,C,S],h,d);try{for(var L=f(T),A=L.next();!A.done;A=L.next()){var Y=A.value;I=I.replace("$",Y)}}catch(e){r={error:e}}finally{try{A&&!A.done&&(o=L.return)&&o.call(L)}finally{if(r)throw r.error}}return I}throw new Error("Output range doesn't match string format!")}throw new Error("Output range cannot be Empty")},exports.mix=function(e,t,n){return t*(1-e)+n*e},exports.move=function(e,t,n){var i=e[t],r=e.length,o=t-n;if(o>0)return l(l(l(l([],s(e.slice(0,n)),!1),[i],!1),s(e.slice(n,t)),!1),s(e.slice(t+1,r)),!1);if(o<0){var a=n+1;return l(l(l(l([],s(e.slice(0,t)),!1),s(e.slice(t+1,a)),!1),[i],!1),s(e.slice(a,r)),!1)}return e},exports.rubberClamp=function(e,t,n,i){return void 0===i&&(i=.15),0===i?_(e,t,n):e<t?-O(t-e,n-t,i)+t:e>n?+O(e-n,n-t,i)+n:e},exports.snapTo=function(e,t,n){var i=e+.2*t,r=function(e){return Math.abs(e-i)},o=n.map(r),a=Math.min.apply(Math,l([],s(o),!1));return n.reduce((function(e,t){return r(t)===a?t:e}))},exports.useAnimatedList=function(e,n,i){var r;void 0===i&&(i={});var o="object"==typeof i.from&&null!==i.from,l=o?i.from:{value:null!==(r=i.from)&&void 0!==r?r:0},c={},h={};Object.keys(l).forEach((function(e){var t,n,r=o?null===(t=i.enter)||void 0===t?void 0:t[e]:i.enter;c[e]="number"==typeof r?v(r):r||v(1);var a=o?null===(n=i.exit)||void 0===n?void 0:n[e]:i.exit;h[e]="number"==typeof a?v(a):a||v(0)}));var d=t.useRef(new Map),m=t.useRef(new Set),p=s(t.useState(0),2)[1];return t.useLayoutEffect((function(){var t,i,r=new Set(e.map(n)),o=function(e){var t=n(e);if(d.current.has(t))d.current.get(t).item=e;else{var i={};Object.entries(l).forEach((function(e){var t=s(e,2),n=t[0],r=t[1],o=new u(r);o.set(c[n]),i[n]=o})),d.current.set(t,{values:i,item:e}),p((function(e){return e+1}))}};try{for(var v=f(e),y=v.next();!y.done;y=v.next()){o(y.value)}}catch(e){t={error:e}}finally{try{y&&!y.done&&(i=v.return)&&i.call(v)}finally{if(t)throw t.error}}d.current.forEach((function(e,t){var n=e.values;if(!r.has(t)&&!m.current.has(t)){m.current.add(t);var i=Object.keys(n);i.forEach((function(e,r){var o=h[e];n[e].set(a(a({},o),{options:a(a({},o.options),{onComplete:function(){var a,f;r===i.length-1&&(d.current.delete(t),m.current.delete(t),p((function(e){return e+1})),null===(f=null===(a=o.options)||void 0===a?void 0:a.onComplete)||void 0===f||f.call(a),n[e].destroy())}})}))}))}}))}),[e,n,JSON.stringify(l),JSON.stringify(c),JSON.stringify(h)]),Array.from(d.current.entries()).map((function(e){var t=s(e,2),n=t[0],i=t[1],r=i.values,a=i.item;if(!o)return{key:n,item:a,animation:r.value.value};var f={};return Object.entries(r).forEach((function(e){var t=s(e,2),n=t[0],i=t[1];f[n]=i.value})),{key:n,item:a,animation:f}}))},exports.useDrag=function(e,t){var n=i.useRef(new S).current;return Y([["drag",n,e,t]])},exports.useGesture=function(e){var t=e.onDrag,n=e.onWheel,r=e.onScroll,o=e.onMouseMove,a=i.useRef(new S).current,f=i.useRef(new A).current,s=i.useRef(new L).current,l=i.useRef(new T).current;return Y([["drag",a,t],["wheel",f,n],["scroll",s,r],["move",l,o]])},exports.useMeasure=function(e,n){var i=t.useRef(null),r=t.useRef([]),o=t.useRef(e);return t.useEffect((function(){return o.current=e,function(){o.current=function(){return!1}}}),n),t.useEffect((function(){var e=i.current||document.documentElement,t=r.current,n=new ResizeObserver((function(t){var n=s(t,1)[0].target.getBoundingClientRect(),i=n.left,r=n.top,a=n.width,f=n.height,l=window.pageXOffset,u=window.pageYOffset;if(o){if(e===document.documentElement)return;o.current({left:i+l,top:r+u,width:a,height:f,vLeft:i,vTop:r})}})),a=new ResizeObserver((function(e){var t=[],n=[],i=[],r=[],a=[],f=[];e.forEach((function(e){var o=e.target.getBoundingClientRect(),s=o.left,l=o.top,u=o.width,c=o.height,h=s+window.pageXOffset,v=l+window.pageYOffset;t.push(h),n.push(v),i.push(u),r.push(c),a.push(s),f.push(l)})),o&&o.current({left:t,top:n,width:i,height:r,vLeft:a,vTop:f})}));return e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){a.observe(e.current)})):n.observe(e)),function(){e&&(e===document.documentElement&&t.length>0?t.forEach((function(e){a.unobserve(e.current)})):n.unobserve(e))}}),[]),function(e){return null==e?{ref:i}:(r.current[e]=r.current[e]||t.createRef(),{ref:r.current[e]})}},exports.useMount=function(e,n){var i;void 0===n&&(n={});var r=s(t.useState(e),2),o=r[0],f=r[1],l="object"==typeof n.from&&null!==n.from,u=l?n.from:{value:null!==(i=n.from)&&void 0!==i?i:0},h={},d={};Object.keys(u).forEach((function(e){var t,i;h[e]=l?null===(t=n.enter)||void 0===t?void 0:t[e]:n.enter,null==h[e]&&(h[e]=1),d[e]=l?null===(i=n.exit)||void 0===i?void 0:i[e]:n.exit,null==d[e]&&(d[e]=0)}));var m=s(c(u),2),p=m[0],y=m[1];if(t.useLayoutEffect((function(){var t=Object.keys(u);e?(f(!0),queueMicrotask((function(){var e={};t.forEach((function(t){var n=h[t];e[t]="object"==typeof n&&"type"in n?n:v(n)})),y(e)}))):queueMicrotask((function(){var e={};t.forEach((function(n,i){var r=d[n],o="object"==typeof r&&"type"in r?r:v(r);e[n]=a(a({},o),{options:a(a({},o.options),{onComplete:function(){var e,n;i===t.length-1&&(f(!1),null===(n=null===(e=o.options)||void 0===e?void 0:e.onComplete)||void 0===n||n.call(e))}})})})),y(e)}))}),[e,JSON.stringify(h),JSON.stringify(d)]),!l){var g=p.value;return function(e){return e(g,o)}}return function(e){return e(p,o)}},exports.useMouseMove=function(e){var t=i.useRef(new T).current;return Y([["move",t,e]])},exports.useOutsideClick=function(e,n,i){var r=t.useRef();r.current||(r.current=n),t.useEffect((function(){return r.current=n,function(){r.current=function(){return!1}}}),i),t.useEffect((function(){var t=M([document],[["mousedown",function(t){var n=t.target;n&&n.isConnected&&(e.current&&!e.current.contains(n)&&r.current&&r.current(t))}]]);return function(){return t&&t()}}),[])},exports.useScroll=function(e){var t=i.useRef(new L).current;return Y([["scroll",t,e]])},exports.useValue=c,exports.useWheel=function(e){var t=i.useRef(new A).current;return Y([["wheel",t,e]])},exports.useWindowDimension=function(e,n){var i=t.useRef({width:0,height:0,innerWidth:0,innerHeight:0}),r=t.useRef(e);t.useEffect((function(){return r.current=e,function(){r.current=function(){return!1}}}),n),t.useEffect((function(){var e=new ResizeObserver((function(e){var t=s(e,1)[0].target,n=t.clientWidth,o=t.clientHeight,f=window.innerWidth,l=window.innerHeight;i.current={width:n,height:o,innerWidth:f,innerHeight:l},r&&r.current(a({},i.current))}));return e.observe(document.documentElement),function(){return e.unobserve(document.documentElement)}}),[])},exports.withDecay=function(e){return{type:"decay",options:{velocity:e.velocity,onStart:null==e?void 0:e.onStart,onChange:null==e?void 0:e.onChange,onComplete:null==e?void 0:e.onRest,clamp:null==e?void 0:e.clamp}}},exports.withDelay=function(e){return{type:"delay",options:{delay:e}}},exports.withEase=function(e,t){return v(e,a(a({},t),h.Spring.EASE))},exports.withLoop=function(e,t,n){return{type:"loop",options:{controller:e,iterations:t,onStart:null==n?void 0:n.onStart,onChange:null==n?void 0:n.onChange,onComplete:null==n?void 0:n.onRest}}},exports.withSequence=function(e,t){return{type:"sequence",options:{steps:e,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}},exports.withSpring=v,exports.withTiming=function(e,t){var n;return{type:"timing",to:e,options:{duration:null!==(n=null==t?void 0:t.duration)&&void 0!==n?n:300,easing:null==t?void 0:t.easing,onStart:null==t?void 0:t.onStart,onChange:null==t?void 0:t.onChange,onComplete:null==t?void 0:t.onRest}}};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/animation/Value.ts","../src/animation/hooks/useValue.ts","../src/animation/AnimationConfig.ts","../src/animation/controllers.ts","../src/animation/interpolation/colors.ts","../src/animation/interpolation/interpolateNumbers.ts","../src/gestures/helpers/eventAttacher.ts","../src/gestures/helpers/math.ts","../src/gestures/helpers/withDefault.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/controllers/MouseMoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/gestures/hooks/useRecognizer.ts","../src/animation/hooks/useAnimatedList.ts","../src/gestures/hooks/useDrag.ts","../src/gestures/hooks/useGesture.ts","../src/hooks/useMeasure.ts","../src/animation/hooks/useMount.ts","../src/gestures/hooks/useMouseMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/gestures/hooks/useWheel.ts","../src/hooks/useWindowDimension.ts"],"sourcesContent":["import {\n decay,\n delay,\n loop,\n MotionValue,\n sequence,\n spring,\n timing,\n} from '@raidipesh78/re-motion';\n\nimport { DriverConfig, ToValue } from './types';\n\nexport class Value<V extends number | string> {\n private animation: MotionValue<V>;\n private unsubscribe?: () => void;\n\n constructor(initial: V) {\n this.animation = new MotionValue(initial);\n }\n\n set(u: MotionValue<V> | ToValue<V>) {\n if (u instanceof MotionValue) return;\n\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n\n if (typeof u === 'object' && u !== null) {\n const { type, to, options } = u;\n\n if (options?.onChange) {\n this.unsubscribe = this.animation.subscribe(options.onChange);\n }\n\n if (type === 'sequence') {\n const steps = options?.steps ?? [];\n const controllers = steps.map((step) => this.buildDriver(step));\n const ctrl = sequence(controllers);\n\n // Handle onComplete manually here, until we fix on re-motion\n if (options?.onComplete) {\n ctrl.setOnComplete?.(options?.onComplete);\n }\n\n ctrl.start();\n return;\n }\n\n if (type === 'loop') {\n const inner = this.buildDriver(options!.controller!);\n const ctrl = loop(inner, options?.iterations!);\n\n // Handle onComplete manually here, until we fix on re-motion\n if (options?.onComplete) {\n ctrl.setOnComplete?.(options?.onComplete);\n }\n\n ctrl.start();\n return;\n }\n\n this.buildDriver({ type, to, options }).start?.();\n } else {\n this.animation.set(u as V);\n }\n }\n\n private buildDriver(cfg: DriverConfig) {\n const anim = this.animation as MotionValue<number>;\n\n switch (cfg.type) {\n case 'spring':\n return spring(anim, cfg.to!, cfg.options);\n case 'timing':\n return timing(anim, cfg.to!, cfg.options);\n case 'decay':\n return decay(anim, cfg.options?.velocity!, cfg.options);\n case 'delay':\n return delay(cfg.options?.delay!);\n case 'sequence':\n return sequence(cfg.options!.steps!.map(this.buildDriver.bind(this)));\n default:\n throw new Error(`Unsupported driver type \"${cfg.type}\"`);\n }\n }\n\n get value(): MotionValue<V> {\n return this.animation;\n }\n\n get current(): V {\n return this.animation.current;\n }\n\n destroy() {\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n }\n}\n","import { useEffect, useRef } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { Value } from '../Value';\nimport { Primitive, ToValue } from '../types';\n\ntype Input<V extends Primitive> = V | V[] | Record<string, V>;\n\ntype Output<V extends Primitive, I extends Input<V>> = I extends V\n ? MotionValue<V>\n : I extends V[]\n ? { [K in keyof I]: MotionValue<V> }\n : I extends Record<string, V>\n ? { [K in keyof I]: MotionValue<V> }\n : never;\n\ntype SetterParam<V extends Primitive, I extends Input<V>> = I extends V\n ? MotionValue<V> | ToValue<V>\n : I extends V[]\n ? Partial<{ [K in keyof I]: MotionValue<V> | ToValue<V> }>\n : I extends Record<string, V>\n ? Partial<{ [K in keyof I]: MotionValue<V> | ToValue<V> }>\n : never;\n\nexport function useValue<V extends Primitive, I extends Input<V>>(\n initial: I\n): [Output<V, I>, (to: SetterParam<V, I>) => void] {\n const storeRef = useRef<Array<[string, Value<V>]> | null>(null);\n if (storeRef.current === null) {\n const entries: Array<[string, Value<V>]> = [];\n\n if (Array.isArray(initial)) {\n (initial as V[]).forEach((v, i) => {\n entries.push([String(i), new Value(v)]);\n });\n } else if (typeof initial === 'object') {\n for (const [k, v] of Object.entries(initial as Record<string, V>)) {\n entries.push([k, new Value(v)]);\n }\n } else {\n entries.push(['__0', new Value(initial as V)]);\n }\n\n storeRef.current = entries;\n }\n\n useEffect(() => {\n return () => {\n storeRef.current!.forEach(([, val]) => val.destroy());\n storeRef.current = null;\n };\n }, []);\n\n const values = (() => {\n const entries = storeRef.current!;\n if (Array.isArray(initial)) {\n return entries.map(([, val]) => val.value) as Output<V, I>;\n }\n if (typeof initial === 'object') {\n const out: Record<string, MotionValue<V>> = {};\n for (const [k, val] of entries) out[k] = val.value;\n return out as Output<V, I>;\n }\n return entries[0][1].value as Output<V, I>;\n })();\n\n const set = ((\n to:\n | MotionValue<V>\n | ToValue<V>\n | Array<MotionValue<V> | ToValue<V>>\n | Record<string, MotionValue<V> | ToValue<V>>\n ) => {\n const entries = storeRef.current!;\n if (Array.isArray(initial)) {\n const updates = to as Partial<Array<MotionValue<V> | ToValue<V>>>;\n Object.entries(updates).forEach(([i, val]) => {\n const index = Number(i);\n if (!isNaN(index) && val !== undefined) {\n entries[index]?.[1].set(val);\n }\n });\n } else if (typeof initial === 'object' && initial !== null) {\n const updates = to as Partial<\n Record<string, MotionValue<V> | ToValue<V>>\n >;\n for (const [k, v] of Object.entries(updates)) {\n const entry = entries.find(([ek]) => ek === k);\n if (entry && v !== undefined) entry[1].set(v);\n }\n } else {\n entries[0][1].set(to as MotionValue<V> | ToValue<V>);\n }\n }) as (to: SetterParam<V, I>) => void;\n\n return [values, set];\n}\n","import { Easing } from '@raidipesh78/re-motion';\n\nexport const AnimationConfig = {\n Timing: {\n BOUNCE: { duration: 500, easing: Easing.bounce },\n EASE_IN: { duration: 500, easing: Easing.in(Easing.ease) },\n EASE_OUT: { duration: 500, easing: Easing.out(Easing.ease) },\n EASE_IN_OUT: { duration: 500, easing: Easing.inOut(Easing.ease) },\n POWER1: { duration: 500, easing: Easing.bezier(0.17, 0.42, 0.51, 0.97) },\n POWER2: { duration: 500, easing: Easing.bezier(0.07, 0.11, 0.13, 1) },\n POWER3: { duration: 500, easing: Easing.bezier(0.09, 0.7, 0.16, 1.04) },\n POWER4: { duration: 500, easing: Easing.bezier(0.05, 0.54, 0, 1.03) },\n LINEAR: { duration: 500, easing: Easing.linear },\n },\n Spring: {\n ELASTIC: { mass: 1, friction: 18, tension: 250 },\n EASE: { mass: 1, friction: 26, tension: 170 },\n STIFF: { mass: 1, friction: 18, tension: 350 },\n WOBBLE: { mass: 1, friction: 8, tension: 250 },\n },\n};\n","import { AnimationConfig } from './AnimationConfig';\nimport { DriverConfig } from './types';\n\ninterface WithSpringOptions {\n mass?: number;\n tension?: number;\n friction?: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withSpring = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig => {\n return {\n type: 'spring',\n to,\n options: {\n stiffness: options?.tension ?? 100,\n damping: options?.friction ?? 10,\n mass: options?.mass ?? 1,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n };\n};\n\nexport const withEase = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig =>\n withSpring(to, { ...options, ...AnimationConfig.Spring.EASE });\n\ninterface WithTimingOptions {\n duration?: number;\n easing?: (t: number) => number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withTiming = (\n to: number,\n options?: WithTimingOptions\n): DriverConfig => ({\n type: 'timing',\n to,\n options: {\n duration: options?.duration ?? 300,\n easing: options?.easing,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\ninterface WithDecayOptions {\n velocity: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n clamp?: [number, number];\n}\n\nexport const withDecay = (options: WithDecayOptions): DriverConfig => ({\n type: 'decay',\n options: {\n velocity: options.velocity,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n clamp: options?.clamp,\n },\n});\n\ninterface WithSequenceOptions {\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withSequence = (\n steps: DriverConfig[],\n options?: WithSequenceOptions\n): DriverConfig => ({\n type: 'sequence',\n options: {\n steps,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\nexport const withDelay = (delay: number): DriverConfig => ({\n type: 'delay',\n options: {\n delay,\n },\n});\n\ninterface WithLoopOptions {\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withLoop = (\n controller: DriverConfig,\n iterations: number,\n options?: WithLoopOptions\n): DriverConfig => ({\n type: 'loop',\n options: {\n controller,\n iterations,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n","export const COLOR_NUMBER_REGEX =\n /[+-]?\\d+(\\.\\d+)?|[\\s]?\\.\\d+|#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/gi;\nexport const HEX_NAME_COLOR =\n /#[a-f\\d]{3,}|transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|burntsienna|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen/gi;\n\ninterface classNameType {\n [name: string]: string;\n}\n\n// Named colors\nexport const colorNames: classNameType = {\n transparent: '#00000000',\n aliceblue: '#f0f8ffff',\n antiquewhite: '#faebd7ff',\n aqua: '#00ffffff',\n aquamarine: '#7fffd4ff',\n azure: '#f0ffffff',\n beige: '#f5f5dcff',\n bisque: '#ffe4c4ff',\n black: '#000000ff',\n blanchedalmond: '#ffebcdff',\n blue: '#0000ffff',\n blueviolet: '#8a2be2ff',\n brown: '#a52a2aff',\n burlywood: '#deb887ff',\n burntsienna: '#ea7e5dff',\n cadetblue: '#5f9ea0ff',\n chartreuse: '#7fff00ff',\n chocolate: '#d2691eff',\n coral: '#ff7f50ff',\n cornflowerblue: '#6495edff',\n cornsilk: '#fff8dcff',\n crimson: '#dc143cff',\n cyan: '#00ffffff',\n darkblue: '#00008bff',\n darkcyan: '#008b8bff',\n darkgoldenrod: '#b8860bff',\n darkgray: '#a9a9a9ff',\n darkgreen: '#006400ff',\n darkgrey: '#a9a9a9ff',\n darkkhaki: '#bdb76bff',\n darkmagenta: '#8b008bff',\n darkolivegreen: '#556b2fff',\n darkorange: '#ff8c00ff',\n darkorchid: '#9932ccff',\n darkred: '#8b0000ff',\n darksalmon: '#e9967aff',\n darkseagreen: '#8fbc8fff',\n darkslateblue: '#483d8bff',\n darkslategray: '#2f4f4fff',\n darkslategrey: '#2f4f4fff',\n darkturquoise: '#00ced1ff',\n darkviolet: '#9400d3ff',\n deeppink: '#ff1493ff',\n deepskyblue: '#00bfffff',\n dimgray: '#696969ff',\n dimgrey: '#696969ff',\n dodgerblue: '#1e90ffff',\n firebrick: '#b22222ff',\n floralwhite: '#fffaf0ff',\n forestgreen: '#228b22ff',\n fuchsia: '#ff00ffff',\n gainsboro: '#dcdcdcff',\n ghostwhite: '#f8f8ffff',\n gold: '#ffd700ff',\n goldenrod: '#daa520ff',\n gray: '#808080ff',\n green: '#008000ff',\n greenyellow: '#adff2fff',\n grey: '#808080ff',\n honeydew: '#f0fff0ff',\n hotpink: '#ff69b4ff',\n indianred: '#cd5c5cff',\n indigo: '#4b0082ff',\n ivory: '#fffff0ff',\n khaki: '#f0e68cff',\n lavender: '#e6e6faff',\n lavenderblush: '#fff0f5ff',\n lawngreen: '#7cfc00ff',\n lemonchiffon: '#fffacdff',\n lightblue: '#add8e6ff',\n lightcoral: '#f08080ff',\n lightcyan: '#e0ffffff',\n lightgoldenrodyellow: '#fafad2ff',\n lightgray: '#d3d3d3ff',\n lightgreen: '#90ee90ff',\n lightgrey: '#d3d3d3ff',\n lightpink: '#ffb6c1ff',\n lightsalmon: '#ffa07aff',\n lightseagreen: '#20b2aaff',\n lightskyblue: '#87cefaff',\n lightslategray: '#778899ff',\n lightslategrey: '#778899ff',\n lightsteelblue: '#b0c4deff',\n lightyellow: '#ffffe0ff',\n lime: '#00ff00ff',\n limegreen: '#32cd32ff',\n linen: '#faf0e6ff',\n magenta: '#ff00ffff',\n maroon: '#800000ff',\n mediumaquamarine: '#66cdaaff',\n mediumblue: '#0000cdff',\n mediumorchid: '#ba55d3ff',\n mediumpurple: '#9370dbff',\n mediumseagreen: '#3cb371ff',\n mediumslateblue: '#7b68eeff',\n mediumspringgreen: '#00fa9aff',\n mediumturquoise: '#48d1ccff',\n mediumvioletred: '#c71585ff',\n midnightblue: '#191970ff',\n mintcream: '#f5fffaff',\n mistyrose: '#ffe4e1ff',\n moccasin: '#ffe4b5ff',\n navajowhite: '#ffdeadff',\n navy: '#000080ff',\n oldlace: '#fdf5e6ff',\n olive: '#808000ff',\n olivedrab: '#6b8e23ff',\n orange: '#ffa500ff',\n orangered: '#ff4500ff',\n orchid: '#da70d6ff',\n palegoldenrod: '#eee8aaff',\n palegreen: '#98fb98ff',\n paleturquoise: '#afeeeeff',\n palevioletred: '#db7093ff',\n papayawhip: '#ffefd5ff',\n peachpuff: '#ffdab9ff',\n peru: '#cd853fff',\n pink: '#ffc0cbff',\n plum: '#dda0ddff',\n powderblue: '#b0e0e6ff',\n purple: '#800080ff',\n rebeccapurple: '#663399ff',\n red: '#ff0000ff',\n rosybrown: '#bc8f8fff',\n royalblue: '#4169e1ff',\n saddlebrown: '#8b4513ff',\n salmon: '#fa8072ff',\n sandybrown: '#f4a460ff',\n seagreen: '#2e8b57ff',\n seashell: '#fff5eeff',\n sienna: '#a0522dff',\n silver: '#c0c0c0ff',\n skyblue: '#87ceebff',\n slateblue: '#6a5acdff',\n slategray: '#708090ff',\n slategrey: '#708090ff',\n snow: '#fffafaff',\n springgreen: '#00ff7fff',\n steelblue: '#4682b4ff',\n tan: '#d2b48cff',\n teal: '#008080ff',\n thistle: '#d8bfd8ff',\n tomato: '#ff6347ff',\n turquoise: '#40e0d0ff',\n violet: '#ee82eeff',\n wheat: '#f5deb3ff',\n white: '#ffffffff',\n whitesmoke: '#f5f5f5ff',\n yellow: '#ffff00ff',\n yellowgreen: '#9acd32ff',\n};\n\nfunction conv3to6(hex: string) {\n const regex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\n return hex.replace(regex, function (_, r, g, b) {\n return '#' + r + r + g + g + b + b;\n });\n}\n\nfunction conv6to8(hex: string) {\n if (hex.length === 7) {\n return hex + 'FF';\n }\n\n return hex;\n}\n\nexport function hexToRgba(hex: string) {\n const hex6: string = conv3to6(hex);\n const hex8: string = conv6to8(hex6);\n const hexRgba: any =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex8);\n\n return {\n r: parseInt(hexRgba[1], 16),\n g: parseInt(hexRgba[2], 16),\n b: parseInt(hexRgba[3], 16),\n a: parseInt(hexRgba[4], 16) / 255,\n };\n}\n\nexport function rgbaToHex(rgba: {\n r: number;\n g: number;\n b: number;\n a: number;\n}) {\n const { r, g, b, a } = rgba;\n\n const hexR = (r | (1 << 8)).toString(16).slice(1);\n const hexG = (g | (1 << 8)).toString(16).slice(1);\n const hexB = (b | (1 << 8)).toString(16).slice(1);\n const hexA = ((a * 255) | (1 << 8)).toString(16).slice(1);\n\n return '#' + hexR + hexG + hexB + hexA;\n}\n\nexport function processColor(color: number | string) {\n if (typeof color === 'number') {\n const alpha = ((color >> 24) & 255) / 255;\n const red = (color >> 16) & 255;\n const green = (color >> 8) & 255;\n const blue = color & 255;\n\n return { r: red, g: green, b: blue, a: alpha };\n } else {\n // If string then check whether it has # in 0 index\n if (color[0] === '#') {\n return hexToRgba(color);\n } else {\n // It is string color\n const hexColorName: string = colorNames[color];\n if (hexColorName) {\n return hexToRgba(hexColorName);\n } else {\n throw new Error('String cannot be parsed!');\n }\n }\n }\n}\n","import {\n rgbaToHex,\n hexToRgba,\n COLOR_NUMBER_REGEX,\n HEX_NAME_COLOR,\n colorNames,\n} from './colors';\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ntype ExtrapolateConfig = {\n extrapolate?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n};\n\nconst interpolateValue = (\n val: number,\n arr: any,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = arr;\n let result: number = val;\n\n // EXTRAPOLATE\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (val <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n};\n\nconst getNarrowedInput = function (\n x: number,\n input: number[],\n output: Array<number | string>\n): Array<number | string> {\n const length = input.length;\n let narrowedInput: Array<number | string> = [];\n\n // Boundaries\n if (x < input[0]) {\n narrowedInput = [input[0], input[1], output[0], output[1]];\n } else if (x > input[length - 1]) {\n narrowedInput = [\n input[length - 2],\n input[length - 1],\n output[length - 2],\n output[length - 1],\n ];\n }\n\n // Narrow the input and output ranges\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput = [input[i - 1], input[i], output[i - 1], output[i]];\n break;\n }\n }\n\n return narrowedInput;\n};\n\nconst interpolateColor = (value: number, narrowedInput: string[]) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const outputMinProcessed = hexToRgba(outputMin);\n const outputMaxProcessed = hexToRgba(outputMax);\n\n const red = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.r, outputMaxProcessed.r],\n 'clamp',\n 'clamp'\n );\n\n const green = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.g, outputMaxProcessed.g],\n 'clamp',\n 'clamp'\n );\n\n const blue = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.b, outputMaxProcessed.b],\n 'clamp',\n 'clamp'\n );\n\n const alpha = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.a, outputMaxProcessed.a],\n 'clamp',\n 'clamp'\n );\n\n return rgbaToHex({ r: red, g: green, b: blue, a: alpha });\n};\n\nconst _getArrayInterpolate = (\n value: number,\n narrowedInput: Array<any>,\n _extrapolateLeft: ExtrapolateType,\n _extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n if (outputMin.length === outputMax.length) {\n return outputMin.map((val: any, index: number) => {\n if (typeof val === 'string') {\n // IF IT IS STRING THEN IT MUST BE HEX COLOR\n return interpolateColor(value, [\n inputMin,\n inputMax,\n val,\n outputMax[index],\n ]);\n } else {\n return interpolateValue(\n value,\n [inputMin, inputMax, val, outputMax[index]],\n _extrapolateLeft,\n _extrapolateRight\n );\n }\n });\n } else {\n throw new Error(\"Array length doesn't match\");\n }\n};\n\nconst getTemplateString = (str: string) => {\n return str.replace(COLOR_NUMBER_REGEX, '$');\n};\n\nconst _getParsedStringArray = (str: any) => {\n return str.match(COLOR_NUMBER_REGEX).map((v: string) => {\n if (v.indexOf('#') !== -1) {\n return v;\n } else {\n return Number(v);\n }\n });\n};\n\nconst stringMatched = (str1: string, str2: string) =>\n getTemplateString(str1).trim().replace(/\\s/g, '') ===\n getTemplateString(str2).trim().replace(/\\s/g, '');\n\n/**\n * Function which proccess the\n * hexadecimal colors to its proper formats\n * @param str - string\n * @returns hex color string\n */\nconst getProcessedColor = (str: string) => {\n return str.replace(HEX_NAME_COLOR, function (match: any) {\n if (match.indexOf('#') !== -1) {\n return rgbaToHex(hexToRgba(match));\n } else if (Object.prototype.hasOwnProperty.call(colorNames, match)) {\n return colorNames[match];\n } else {\n throw new Error('String cannot be parsed!');\n }\n });\n};\n\nexport function interpolateNumbers(\n value: number,\n inputRange: Array<number>,\n outputRange: Array<number | string>,\n extrapolateConfig?: ExtrapolateConfig\n) {\n const extrapolate = extrapolateConfig?.extrapolate;\n const extrapolateLeft = extrapolateConfig?.extrapolateLeft;\n const extrapolateRight = extrapolateConfig?.extrapolateRight;\n\n const narrowedInput = getNarrowedInput(value, inputRange, outputRange);\n\n let _extrapolateLeft: ExtrapolateType = 'extend';\n if (extrapolateLeft !== undefined) {\n _extrapolateLeft = extrapolateLeft;\n } else if (extrapolate !== undefined) {\n _extrapolateLeft = extrapolate;\n }\n\n let _extrapolateRight: ExtrapolateType = 'extend';\n if (extrapolateRight !== undefined) {\n _extrapolateRight = extrapolateRight;\n } else if (extrapolate !== undefined) {\n _extrapolateRight = extrapolate;\n }\n\n if (outputRange.length) {\n if (typeof outputRange[0] === 'number') {\n return interpolateValue(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else if (Array.isArray(outputRange[0])) {\n return _getArrayInterpolate(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const processedOutputMin = getProcessedColor(outputMin as string);\n const processedOutputMax = getProcessedColor(outputMax as string);\n\n let templateString = getTemplateString(processedOutputMin);\n\n if (stringMatched(processedOutputMin, processedOutputMax)) {\n const outputMinParsed = _getParsedStringArray(processedOutputMin);\n const outputMaxParsed = _getParsedStringArray(processedOutputMax);\n\n const result = _getArrayInterpolate(\n value,\n [inputMin, inputMax, outputMinParsed, outputMaxParsed],\n _extrapolateLeft,\n _extrapolateRight\n );\n\n for (const v of result) templateString = templateString.replace('$', v);\n return templateString;\n } else {\n throw new Error(\"Output range doesn't match string format!\");\n }\n }\n } else {\n throw new Error('Output range cannot be Empty');\n }\n}\n","type MouseEventType =\n | 'click'\n | 'dblclick'\n | 'mousedown'\n | 'mousemove'\n | 'mouseup'\n | 'touchstart'\n | 'touchmove'\n | 'touchend'\n | 'mouseenter'\n | 'mouseleave'\n | 'mouseout'\n | 'mouseover'\n | 'scroll'\n | 'wheel'\n | 'contextmenu';\n\ntype DomTargetTypes = Array<Window | Document | HTMLElement>;\n\n/**\n * Attach single document / window event / HTMLElement\n */\nfunction attachEvent(\n domTargets: DomTargetTypes,\n event: MouseEventType,\n callback: (e: any) => void,\n capture: any = false\n) {\n domTargets.forEach((target) => {\n target.addEventListener(event, callback, capture);\n });\n\n return function () {\n domTargets.forEach((target) => {\n target.removeEventListener(event, callback, capture);\n });\n };\n}\n\n/**\n * Attach multiple document / window event / HTMLElement\n */\nexport function attachEvents(\n domTargets: DomTargetTypes,\n events: Array<\n [event: MouseEventType, callback: (e: any) => void, capture?: any]\n >\n) {\n const subscribers = new Map();\n\n events.forEach(function ([event, callback, capture = false]) {\n subscribers.set(event, attachEvent(domTargets, event, callback, capture));\n });\n\n return function (eventKeys?: Array<string>) {\n for (const [eventKey, subscriber] of subscribers.entries()) {\n if (!eventKeys) {\n subscriber();\n return;\n }\n\n if (eventKeys.indexOf(eventKey) !== -1) {\n subscriber();\n }\n }\n };\n}\n","/**\n * bin(booleanValue)\n * returns 1 if booleanValue == true and 0 if booleanValue == false\n */\nexport function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\n/**\n * mix(progress, a, b)\n * linear interpolation between a and b\n */\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\n/**\n * clamp(value, min, max)\n * clamps value for min and max bounds\n */\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\nfunction rubber2(distanceFromEdge: number, constant: number) {\n return Math.pow(distanceFromEdge, constant * 5);\n}\n\nfunction rubber(distanceFromEdge: number, dimension: number, constant: number) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return rubber2(distanceFromEdge, constant);\n return (\n (distanceFromEdge * dimension * constant) /\n (dimension + constant * distanceFromEdge)\n );\n}\n\n/**\n * rubberClamp(value, min, max, constant?)\n * constant is optional : default 0.15\n * clamps the value for min and max value and\n * extends beyond min and max values with constant\n * factor to create elastic rubber band effect\n */\nexport function rubberClamp(\n value: number,\n lowerbound: number,\n upperbound: number,\n constant: number = 0.15\n) {\n if (constant === 0) return clamp(value, lowerbound, upperbound);\n\n if (value < lowerbound) {\n return (\n -rubber(lowerbound - value, upperbound - lowerbound, constant) +\n lowerbound\n );\n }\n\n if (value > upperbound) {\n return (\n +rubber(value - upperbound, upperbound - lowerbound, constant) +\n upperbound\n );\n }\n\n return value;\n}\n\n/**\n * snapTo(value, velocity, snapPoints[])\n * Calculates the final snapPoint according to given current value,\n * velocity and snapPoints array\n */\nexport function snapTo(\n value: number,\n velocity: number,\n snapPoints: Array<number>\n): number {\n const finalValue = value + velocity * 0.2;\n const getDiff = (point: number) => Math.abs(point - finalValue);\n const deltas = snapPoints.map(getDiff);\n const minDelta = Math.min(...deltas);\n\n return snapPoints.reduce(function (acc, point) {\n if (getDiff(point) === minDelta) {\n return point;\n } else {\n return acc;\n }\n });\n}\n\n/**\n * move(array, moveIndex, toIndex)\n * move array item from moveIndex to toIndex without array modification\n */\nexport function move(array: Array<any>, moveIndex: number, toIndex: number) {\n const item = array[moveIndex];\n const length = array.length;\n const diff = moveIndex - toIndex;\n\n if (diff > 0) {\n return [\n ...array.slice(0, toIndex),\n item,\n ...array.slice(toIndex, moveIndex),\n ...array.slice(moveIndex + 1, length),\n ];\n } else if (diff < 0) {\n const targetIndex = toIndex + 1;\n return [\n ...array.slice(0, moveIndex),\n ...array.slice(moveIndex + 1, targetIndex),\n item,\n ...array.slice(targetIndex, length),\n ];\n }\n return array;\n}\n","export const withDefault = (x: number, y: number) => {\n return { x, y };\n};\n","export class Gesture {\n currentIndex?: number;\n lastTimeStamp: number = Date.now();\n isActive: boolean = false;\n targetElement?: HTMLElement; // represents the bounded element\n targetElements: Array<HTMLElement> = []; // represents the bounded elements\n config?: any;\n callback?: <T>(event: T) => void;\n _subscribe?: (eventKeys?: Array<string>) => void;\n static _VELOCITY_LIMIT: number = 20;\n\n // it must be overridden by other child classes\n _initEvents() {}\n\n // cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe();\n }\n }\n\n // re-apply new callback\n applyCallback(callback: <T>(event: T) => void) {\n this.callback = callback;\n }\n\n // apply gesture\n applyGesture({\n targetElement,\n targetElements,\n callback,\n config,\n }: {\n targetElement?: any;\n targetElements?: any;\n callback: <T>(event: T) => void;\n config?: any;\n }) {\n this.targetElement = targetElement;\n this.targetElements = targetElements.map(\n (element: { current: any }) => element.current\n );\n this.callback = callback;\n this.config = config;\n\n // initialize events\n this._initEvents();\n\n // unbind\n return () => this._subscribe && this._subscribe();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nimport type { Vector2 } from '../types';\n\nexport class DragGesture extends Gesture {\n movementStart: Vector2 = withDefault(0, 0);\n initialMovement: Vector2 = withDefault(0, 0);\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n offset: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement || this.targetElements.length > 0) {\n this._subscribe = attachEvents(\n [window],\n [\n ['mousedown', this.pointerDown.bind(this)],\n ['mousemove', this.pointerMove.bind(this)],\n ['mouseup', this.pointerUp.bind(this)],\n ['touchstart', this.pointerDown.bind(this), { passive: false }],\n ['touchmove', this.pointerMove.bind(this), { passive: false }],\n ['touchend', this.pointerUp.bind(this)],\n ]\n );\n }\n }\n\n // @override - cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe(['mousedown', 'mousemove', 'touchstart', 'touchmove']);\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n down: this.isActive,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.translation.x,\n offsetY: this.translation.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n distanceX: Math.abs(this.movement.x),\n distanceY: Math.abs(this.movement.y),\n directionX: Math.sign(this.movement.x),\n directionY: Math.sign(this.movement.y),\n cancel: () => {\n this._cancelEvents();\n },\n });\n }\n }\n\n pointerDown(e: any) {\n if (e.type === 'touchstart') {\n this.movementStart = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n };\n } else {\n this.movementStart = { x: e.clientX, y: e.clientY };\n }\n\n this.movement = { x: 0, y: 0 };\n this.offset = { x: this.translation.x, y: this.translation.y };\n this.previousMovement = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n if (e.target === this.targetElement || currElem) {\n this.isActive = true;\n e.preventDefault();\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n // if initial function is defined then call it to get initial movementX and movementY\n // if only select to bounded draggable element\n const initial = this.config?.initial && this.config.initial();\n const initialMovementX = initial?.movementX;\n const initialMovementY = initial?.movementY;\n\n this.initialMovement = {\n x: initialMovementX ?? 0,\n y: initialMovementY ?? 0,\n };\n\n this.movement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this.previousMovement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerMove(e: any) {\n if (this.isActive) {\n e.preventDefault();\n const now = Date.now();\n const deltaTime = clamp(now - this.lastTimeStamp, 0.1, 64);\n this.lastTimeStamp = now;\n\n const t = deltaTime / 1000;\n\n if (e.type === 'touchmove') {\n this.movement = {\n x:\n this.initialMovement.x +\n (e.touches[0].clientX - this.movementStart.x),\n y:\n this.initialMovement.y +\n (e.touches[0].clientY - this.movementStart.y),\n };\n } else {\n this.movement = {\n x: this.initialMovement.x + (e.clientX - this.movementStart.x),\n y: this.initialMovement.y + (e.clientY - this.movementStart.y),\n };\n }\n\n this.translation = {\n x: this.offset.x + this.movement.x,\n y: this.offset.y + this.movement.y,\n };\n\n this.velocity = {\n x: clamp(\n (this.movement.x - this.previousMovement.x) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n (this.movement.y - this.previousMovement.y) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerUp() {\n if (this.isActive) {\n this.isActive = false;\n this._handleCallback();\n this._cancelEvents();\n this._initEvents();\n }\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class MouseMoveGesture extends Gesture {\n event?: MouseEvent;\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n } else if (this.targetElements.length > 0) {\n this._subscribe = attachEvents(this.targetElements, [\n ['mousemove', this.onMouseMove.bind(this)],\n ]);\n } else {\n this._subscribe = attachEvents(\n [window],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n event: this.event,\n isMoving: this.isActive,\n target: this.event?.target,\n mouseX: this.movement.x,\n mouseY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onMouseMove(e: MouseEvent) {\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n this.event = e;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n const x = e.clientX;\n const y = e.clientY;\n\n this.movement = { x, y };\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback();\n }, 250); // Debounce 250 milliseconds\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = { x: this.movement.x, y: this.movement.y };\n\n this._handleCallback();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class ScrollGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['scroll', this.scrollElementListener.bind(this)]]\n );\n } else {\n this._subscribe = attachEvents(\n [window],\n [['scroll', this.scrollListener.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n isScrolling: this.isActive,\n scrollX: this.movement.x,\n scrollY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onScroll({ x, y }: Vector2) {\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.movement = { x, y };\n\n // Clear if scrolling\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n\n // Reset Velocity\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback(); // Debounce 250milliseconds\n }, 250);\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n\n scrollListener() {\n const { pageYOffset: y, pageXOffset: x } = window;\n this.onScroll({ x, y });\n }\n\n scrollElementListener() {\n const x = this.targetElement?.scrollLeft || 0;\n const y = this.targetElement?.scrollTop || 0;\n this.onScroll({ x, y });\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\nexport class WheelGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n delta: Vector2 = withDefault(0, 0);\n\n // Holds offsets\n offset: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['wheel', this.onWheel.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n target: this.targetElement,\n isWheeling: this.isActive,\n deltaX: this.delta.x,\n deltaY: this.delta.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.offset.x,\n offsetY: this.offset.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n });\n }\n }\n\n onWheel(event: WheelEvent) {\n let { deltaX, deltaY, deltaMode } = event;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.isActive = true;\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.translation = { x: this.offset.x, y: this.offset.y };\n this._handleCallback();\n\n this.velocity = { x: 0, y: 0 }; // Reset Velocity\n this.movement = { x: 0, y: 0 };\n }, 200);\n\n // normalize wheel values, especially for Firefox\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n this.delta = { x: deltaX, y: deltaY };\n this.movement = {\n x: this.movement.x + deltaX,\n y: this.movement.y + deltaY,\n };\n this.offset = {\n x: this.translation.x + this.movement.x,\n y: this.translation.y + this.movement.y,\n };\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\ntype UseRecognizerHandlerType = Array<\n [\n key: 'drag' | 'wheel' | 'move' | 'scroll',\n gesture: any,\n callback: any,\n config?: any\n ]\n>;\n\nexport const useRecognizer = (handlers: UseRecognizerHandlerType) => {\n const ref = React.useRef<any>();\n const elementRefs = React.useRef<Array<any>>([]);\n const subscribers = React.useRef<\n Map<string, { keyIndex: number; gesture: any; unsubscribe: any }>\n >(new Map()).current;\n\n // re-initiate callback on change\n React.useEffect(() => {\n for (let [, { keyIndex, gesture }] of subscribers.entries()) {\n const [, , callback] = handlers[keyIndex];\n gesture.applyCallback(callback);\n }\n }, [handlers]);\n\n React.useEffect(() => {\n handlers.forEach(([key, gesture, callback, config], keyIndex) => {\n queueMicrotask(() =>\n subscribers.set(key, {\n keyIndex,\n gesture,\n unsubscribe: gesture.applyGesture({\n targetElement: ref.current,\n targetElements: elementRefs.current,\n callback,\n config,\n }),\n })\n );\n });\n\n return () => {\n for (let [, { unsubscribe }] of subscribers.entries()) {\n unsubscribe && unsubscribe();\n }\n };\n });\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] =\n elementRefs.current[index] || React.createRef();\n\n return { ref: elementRefs.current[index] };\n }\n };\n};\n","import { useLayoutEffect, useRef, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { Value } from '../Value';\nimport { withSpring } from '../controllers';\nimport type { DriverConfig, ToValue } from '../types';\n\nexport function useAnimatedList<T>(\n items: T[],\n getKey: (item: T) => string,\n config?: {\n from?: number;\n enter?: ToValue<number>;\n exit?: ToValue<number>;\n }\n): Array<{ key: string; item: T; animation: MotionValue<number> }>;\n\nexport function useAnimatedList<T, I extends Record<string, number>>(\n items: T[],\n getKey: (item: T) => string,\n config: {\n from: I;\n enter?: Partial<{ [K in keyof I]: ToValue<I[K]> }>;\n exit?: Partial<{ [K in keyof I]: ToValue<I[K]> }>;\n }\n): Array<{\n key: string;\n item: T;\n animation: Record<keyof I, MotionValue<number>>;\n}>;\n\nexport function useAnimatedList(\n items: any[],\n getKey: (item: any) => string,\n config: any = {}\n) {\n const isMulti = typeof config.from === 'object' && config.from !== null;\n const fromObj: Record<string, number> = isMulti\n ? config.from\n : { value: config.from ?? 0 };\n\n const enterObj: Record<string, DriverConfig> = {};\n const exitObj: Record<string, DriverConfig> = {};\n\n Object.keys(fromObj).forEach((key) => {\n const rawEnter = isMulti ? config.enter?.[key] : config.enter;\n if (typeof rawEnter === 'number') {\n enterObj[key] = withSpring(rawEnter);\n } else if (rawEnter) {\n enterObj[key] = rawEnter;\n } else {\n enterObj[key] = withSpring(1);\n }\n\n const rawExit = isMulti ? config.exit?.[key] : config.exit;\n if (typeof rawExit === 'number') {\n exitObj[key] = withSpring(rawExit);\n } else if (rawExit) {\n exitObj[key] = rawExit;\n } else {\n exitObj[key] = withSpring(0);\n }\n });\n\n const itemsRef = useRef(\n new Map<string, { values: Record<string, Value<number>>; item: any }>()\n );\n const exitingRef = useRef(new Set<string>());\n const [, forceUpdate] = useState(0);\n\n useLayoutEffect(() => {\n const nextKeys = new Set(items.map(getKey));\n\n for (const item of items) {\n const key = getKey(item);\n if (!itemsRef.current.has(key)) {\n const values: Record<string, Value<number>> = {};\n Object.entries(fromObj).forEach(([prop, fromVal]) => {\n const val = new Value<number>(fromVal);\n val.set(enterObj[prop]);\n values[prop] = val;\n });\n itemsRef.current.set(key, { values, item });\n forceUpdate((c) => c + 1);\n } else {\n itemsRef.current.get(key)!.item = item;\n }\n }\n\n itemsRef.current.forEach(({ values }, key) => {\n if (!nextKeys.has(key) && !exitingRef.current.has(key)) {\n exitingRef.current.add(key);\n const props = Object.keys(values);\n props.forEach((prop, index) => {\n const base = exitObj[prop];\n values[prop].set({\n ...base,\n options: {\n ...base.options,\n onComplete: () => {\n if (index === props.length - 1) {\n itemsRef.current.delete(key);\n exitingRef.current.delete(key);\n forceUpdate((c) => c + 1);\n base.options?.onComplete?.();\n values[prop].destroy();\n }\n },\n },\n });\n });\n }\n });\n }, [\n items,\n getKey,\n JSON.stringify(fromObj),\n JSON.stringify(enterObj),\n JSON.stringify(exitObj),\n ]);\n\n return Array.from(itemsRef.current.entries()).map(\n ([key, { values, item }]) => {\n if (!isMulti) {\n return {\n key,\n item,\n animation: values['value'].value,\n };\n }\n const anims: Record<string, MotionValue<number>> = {};\n Object.entries(values).forEach(([prop, val]) => {\n anims[prop] = val.value;\n });\n return {\n key,\n item,\n animation: anims as Record<keyof any, MotionValue<number>>,\n };\n }\n );\n}\n","import * as React from 'react';\n\nimport { DragEventType, UseDragConfig } from '../types';\nimport { DragGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useDrag(\n callback: (event: DragEventType) => void,\n config?: UseDragConfig\n) {\n const gesture = React.useRef(new DragGesture()).current;\n\n return useRecognizer([['drag', gesture, callback, config]]);\n}\n","import * as React from 'react';\nimport {\n DragGesture,\n MouseMoveGesture,\n ScrollGesture,\n WheelGesture,\n} from '../controllers';\nimport {\n DragEventType,\n WheelEventType,\n ScrollEventType,\n MouseMoveEventType,\n} from '../types';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useGesture({\n onDrag,\n onWheel,\n onScroll,\n onMouseMove,\n}: {\n onDrag?: (event: DragEventType) => void;\n onWheel?: (event: WheelEventType) => void;\n onScroll?: (event: ScrollEventType) => void;\n onMouseMove?: (event: MouseMoveEventType) => void;\n}) {\n const dragGesture = React.useRef(new DragGesture()).current;\n const wheelGesture = React.useRef(new WheelGesture()).current;\n const scrollGesture = React.useRef(new ScrollGesture()).current;\n const mouseMoveGesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([\n ['drag', dragGesture, onDrag],\n ['wheel', wheelGesture, onWheel],\n ['scroll', scrollGesture, onScroll],\n ['move', mouseMoveGesture, onMouseMove],\n ]);\n}\n","import { useRef, useEffect, DependencyList, createRef } from 'react';\n\ntype MeasurementValue = number | Array<number>;\n\ntype MeasurementType = {\n left: MeasurementValue;\n top: MeasurementValue;\n width: MeasurementValue;\n height: MeasurementValue;\n vLeft: MeasurementValue;\n vTop: MeasurementValue;\n};\n\nexport function useMeasure(\n callback: (event: MeasurementType) => void,\n deps?: DependencyList\n) {\n const ref = useRef(null);\n const elementRefs = useRef([]);\n const callbackRef = useRef<(event: MeasurementType) => void>(callback);\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const _refElement = ref.current || document.documentElement;\n const _refElementsMultiple = elementRefs.current;\n\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { left, top, width, height } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n\n if (callbackRef) {\n if (_refElement === document.documentElement) {\n return; // no-op for document\n } else {\n callbackRef.current({\n left: left + pageXOffset,\n top: top + pageYOffset,\n width,\n height,\n vLeft: left,\n vTop: top,\n });\n }\n }\n });\n\n const resizeObserverMultiple = new ResizeObserver((entries) => {\n const left: Array<number> = [];\n const top: Array<number> = [];\n const width: Array<number> = [];\n const height: Array<number> = [];\n const vLeft: Array<number> = [];\n const vTop: Array<number> = [];\n\n entries.forEach((entry) => {\n const {\n left: _left,\n top: _top,\n width: _width,\n height: _height,\n } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n const _pageLeft = _left + pageXOffset;\n const _pageTop = _top + pageYOffset;\n\n left.push(_pageLeft);\n top.push(_pageTop);\n width.push(_width);\n height.push(_height);\n vLeft.push(_left);\n vTop.push(_top);\n });\n\n if (callbackRef) {\n callbackRef.current({\n left,\n top,\n width,\n height,\n vLeft,\n vTop,\n });\n }\n });\n\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.observe(element.current);\n });\n } else {\n resizeObserver.observe(_refElement);\n }\n }\n\n return () => {\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.unobserve(element.current);\n });\n } else {\n resizeObserver.unobserve(_refElement);\n }\n }\n };\n }, []);\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] = elementRefs.current[index] || createRef();\n\n return { ref: elementRefs.current[index] };\n }\n }; // ...bind() or ...bind(index) for multiple\n}\n","import { useLayoutEffect, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { withSpring } from '../controllers';\nimport { useValue } from './useValue';\nimport type { DriverConfig, ToValue } from '../types';\n\nexport function useMount(\n isOpen: boolean,\n config?: { from?: number; enter?: ToValue<number>; exit?: ToValue<number> }\n): (\n fn: (value: MotionValue<number>, mounted: boolean) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount<I extends Record<string, number>>(\n isOpen: boolean,\n config: {\n from: I;\n enter?: Partial<Record<keyof I, ToValue<number>>>;\n exit?: Partial<Record<keyof I, ToValue<number>>>;\n }\n): (\n fn: (\n values: Record<keyof I, MotionValue<number>>,\n mounted: boolean\n ) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount(isOpen: boolean, config: any = {}) {\n const [mounted, setMounted] = useState(isOpen);\n\n const isMulti = typeof config.from === 'object' && config.from !== null;\n const fromObj: Record<string, number> = isMulti\n ? config.from\n : { value: config.from ?? 0 };\n\n const enterRaw: Record<string, ToValue<number>> = {};\n const exitRaw: Record<string, ToValue<number>> = {};\n Object.keys(fromObj).forEach((key) => {\n enterRaw[key] = isMulti ? config.enter?.[key] : config.enter;\n if (enterRaw[key] == null) enterRaw[key] = 1;\n\n exitRaw[key] = isMulti ? config.exit?.[key] : config.exit;\n if (exitRaw[key] == null) exitRaw[key] = 0;\n });\n\n const [values, setValues] = useValue(fromObj) as [\n Record<string, MotionValue<number>>,\n (to: Record<string, ToValue<number> | DriverConfig>) => void\n ];\n\n useLayoutEffect(() => {\n const keys = Object.keys(fromObj);\n\n if (isOpen) {\n setMounted(true);\n queueMicrotask(() => {\n const drivers: Record<string, DriverConfig> = {};\n keys.forEach((key) => {\n const param = enterRaw[key]!;\n drivers[key] =\n typeof param === 'object' && 'type' in param\n ? (param as DriverConfig)\n : withSpring(param as number);\n });\n setValues(drivers);\n });\n } else {\n queueMicrotask(() => {\n const drivers: Record<string, DriverConfig> = {};\n keys.forEach((key, i) => {\n const param = exitRaw[key]!;\n const base =\n typeof param === 'object' && 'type' in param\n ? (param as DriverConfig)\n : withSpring(param as number);\n\n drivers[key] = {\n ...base,\n options: {\n ...base.options,\n onComplete: () => {\n if (i === keys.length - 1) {\n setMounted(false);\n base.options?.onComplete?.();\n }\n },\n },\n };\n });\n setValues(drivers);\n });\n }\n }, [isOpen, JSON.stringify(enterRaw), JSON.stringify(exitRaw)]);\n\n if (!isMulti) {\n const single = values['value'] as MotionValue<number>;\n return (fn: (v: MotionValue<number>, m: boolean) => React.ReactNode) =>\n fn(single, mounted);\n }\n\n return (\n fn: (\n vals: Record<string, MotionValue<number>>,\n m: boolean\n ) => React.ReactNode\n ) => fn(values, mounted);\n}\n","import * as React from 'react';\n\nimport { MouseMoveEventType } from '../types';\nimport { MouseMoveGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useMouseMove(callback: (event: MouseMoveEventType) => void) {\n const gesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([['move', gesture, callback]]);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nimport { attachEvents } from '../gestures/helpers/eventAttacher';\n\nexport function useOutsideClick(\n elementRef: RefObject<HTMLElement>,\n callback: (event: MouseEvent) => void,\n deps?: DependencyList\n) {\n const callbackRef = useRef<(event: MouseEvent) => void>();\n\n if (!callbackRef.current) {\n callbackRef.current = callback;\n }\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n const target = e.target as Node;\n\n if (!target || !target.isConnected) {\n return;\n }\n\n const isOutside =\n elementRef.current && !elementRef.current.contains(target);\n\n if (isOutside) {\n callbackRef.current && callbackRef.current(e);\n }\n };\n\n const subscribe = attachEvents(\n [document],\n [['mousedown', handleOutsideClick]]\n );\n\n return () => subscribe && subscribe();\n }, []);\n}\n","import * as React from 'react';\n\nimport { ScrollEventType } from '../types';\nimport { ScrollGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useScroll(callback: (event: ScrollEventType) => void) {\n const gesture = React.useRef(new ScrollGesture()).current;\n\n return useRecognizer([['scroll', gesture, callback]]);\n}\n","import * as React from 'react';\n\nimport { WheelEventType } from '../types';\nimport { WheelGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useWheel(callback: (event: WheelEventType) => void) {\n const gesture = React.useRef(new WheelGesture()).current;\n\n return useRecognizer([['wheel', gesture, callback]]);\n}\n","import { useRef, useEffect, DependencyList } from 'react';\n\ntype WindowDimensionType = {\n width: number;\n height: number;\n innerWidth: number;\n innerHeight: number;\n};\n\nexport function useWindowDimension(\n callback: (event: WindowDimensionType) => void,\n deps?: DependencyList\n) {\n const windowDimensionsRef = useRef<WindowDimensionType>({\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n });\n const callbackRef = useRef<(event: WindowDimensionType) => void>(callback);\n\n const handleCallback: () => void = () => {\n if (callbackRef) {\n callbackRef.current({\n ...windowDimensionsRef.current,\n });\n }\n };\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { clientWidth, clientHeight } = entry.target;\n const { innerWidth, innerHeight } = window;\n\n windowDimensionsRef.current = {\n width: clientWidth,\n height: clientHeight,\n innerWidth,\n innerHeight,\n };\n\n handleCallback();\n });\n\n resizeObserver.observe(document.documentElement);\n\n return () => resizeObserver.unobserve(document.documentElement);\n }, []);\n}\n"],"names":["Value","initial","this","animation","MotionValue","prototype","set","u","_this","_a","unsubscribe","call","undefined","type","to","options","onChange","subscribe","controllers","_b","steps","map","step","buildDriver","ctrl","sequence","onComplete","_c","setOnComplete","start","inner","controller","loop","iterations","_d","_f","cfg","anim","spring","timing","decay","velocity","delay","bind","Error","concat","Object","defineProperty","get","current","destroy","useValue","storeRef","useRef","entries_1","Array","isArray","forEach","v","i","push","String","__values","entries","next","done","__read","value","k","useEffect","values","out","entries_2","entries_2_1","val","updates","index","Number","isNaN","_loop_1","entry","find","AnimationConfig","Timing","BOUNCE","duration","easing","Easing","bounce","EASE_IN","in","ease","EASE_OUT","EASE_IN_OUT","inOut","POWER1","bezier","POWER2","POWER3","POWER4","LINEAR","linear","Spring","ELASTIC","mass","friction","tension","EASE","STIFF","WOBBLE","withSpring","stiffness","damping","onStart","onRest","COLOR_NUMBER_REGEX","HEX_NAME_COLOR","colorNames","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexToRgba","hex","hex6","replace","_","r","g","b","conv3to6","hex8","length","conv6to8","hexRgba","exec","parseInt","a","rgbaToHex","rgba","toString","slice","interpolateValue","arr","extrapolateLeft","extrapolateRight","inputMin","inputMax","outputMin","outputMax","result","Infinity","_getArrayInterpolate","narrowedInput","_extrapolateLeft","_extrapolateRight","outputMinProcessed","outputMaxProcessed","interpolateColor","getTemplateString","str","_getParsedStringArray","match","indexOf","getProcessedColor","hasOwnProperty","attachEvents","domTargets","events","subscribers","Map","event","callback","capture","target","addEventListener","removeEventListener","attachEvent","eventKeys","eventKey","subscriber","clamp","lowerbound","upperbound","Math","min","max","rubber","distanceFromEdge","dimension","constant","abs","pow","rubber2","withDefault","x","y","Gesture","lastTimeStamp","Date","now","isActive","targetElements","_initEvents","_cancelEvents","_subscribe","applyCallback","applyGesture","targetElement","config","element","_VELOCITY_LIMIT","DragGesture","_super","movementStart","initialMovement","movement","previousMovement","translation","offset","__extends","window","pointerDown","pointerMove","pointerUp","passive","_handleCallback","args","currentIndex","down","movementX","movementY","offsetX","offsetY","velocityX","velocityY","distanceX","distanceY","directionX","sign","directionY","cancel","e","touches","clientX","clientY","currElem","elem","preventDefault","initialMovementX","initialMovementY","deltaTime","t","MouseMoveGesture","direction","onMouseMove","isMoving","mouseX","mouseY","isActiveID","clearTimeout","setTimeout","diffX","diffY","ScrollGesture","scrollElementListener","scrollListener","isScrolling","scrollX","scrollY","onScroll","pageYOffset","pageXOffset","scrollLeft","scrollTop","WheelGesture","delta","onWheel","isWheeling","deltaX","deltaY","deltaMode","useRecognizer","handlers","ref","React","elementRefs","_e","keyIndex","gesture","key","queueMicrotask","createRef","bool","inputRange","outputRange","extrapolateConfig","extrapolate","input","output","getNarrowedInput","str2","processedOutputMin","processedOutputMax","templateString","trim","outputMinParsed","outputMaxParsed","result_1","result_1_1","perc","val1","val2","array","moveIndex","toIndex","item","diff","__spreadArray","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","items","getKey","isMulti","from","fromObj","enterObj","exitObj","keys","rawEnter","enter","rawExit","exit","itemsRef","exitingRef","Set","forceUpdate","useState","useLayoutEffect","nextKeys","has","values_1","prop","fromVal","c","items_1","items_1_1","add","props_1","base","__assign","delete","JSON","stringify","anims","onDrag","dragGesture","wheelGesture","scrollGesture","mouseMoveGesture","deps","callbackRef","_refElement","document","documentElement","_refElementsMultiple","resizeObserver","ResizeObserver","getBoundingClientRect","left","top","width","height","vLeft","vTop","resizeObserverMultiple","_left","_top","_width","_height","_pageLeft","_pageTop","observe","unobserve","isOpen","mounted","setMounted","enterRaw","exitRaw","setValues","drivers","param","single_1","fn","elementRef","isConnected","contains","windowDimensionsRef","innerWidth","innerHeight","clientWidth","clientHeight"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/animation/Value.ts","../src/animation/hooks/useValue.ts","../src/animation/AnimationConfig.ts","../src/animation/controllers.ts","../src/animation/interpolation/colors.ts","../src/animation/interpolation/interpolateNumbers.ts","../src/gestures/helpers/eventAttacher.ts","../src/gestures/helpers/math.ts","../src/gestures/helpers/withDefault.ts","../src/gestures/controllers/Gesture.ts","../src/gestures/controllers/DragGesture.ts","../src/gestures/controllers/MouseMoveGesture.ts","../src/gestures/controllers/ScrollGesture.ts","../src/gestures/controllers/WheelGesture.ts","../src/gestures/hooks/useRecognizer.ts","../src/animation/hooks/useAnimatedList.ts","../src/gestures/hooks/useDrag.ts","../src/gestures/hooks/useGesture.ts","../src/hooks/useMeasure.ts","../src/animation/hooks/useMount.ts","../src/gestures/hooks/useMouseMove.ts","../src/hooks/useOutsideClick.ts","../src/gestures/hooks/useScroll.ts","../src/gestures/hooks/useWheel.ts","../src/hooks/useWindowDimension.ts"],"sourcesContent":["import {\n decay,\n delay,\n loop,\n MotionValue,\n sequence,\n spring,\n timing,\n} from '@raidipesh78/re-motion';\n\nimport { DriverConfig, ToValue } from './types';\n\nexport class Value<V extends number | string> {\n private animation: MotionValue<V>;\n private unsubscribe?: () => void;\n\n constructor(initial: V) {\n this.animation = new MotionValue(initial);\n }\n\n set(u: MotionValue<V> | ToValue<V>) {\n if (u instanceof MotionValue) return;\n\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n\n if (typeof u === 'object' && u !== null) {\n const { type, to, options } = u;\n\n if (options?.onChange) {\n this.unsubscribe = this.animation.subscribe(options.onChange);\n }\n\n if (type === 'sequence') {\n const steps = options?.steps ?? [];\n const controllers = steps.map((step) => this.buildDriver(step));\n const ctrl = sequence(controllers);\n\n // Handle onComplete manually here, until we fix on re-motion\n if (options?.onComplete) {\n ctrl.setOnComplete?.(options?.onComplete);\n }\n\n ctrl.start();\n return;\n }\n\n if (type === 'loop') {\n const inner = this.buildDriver(options!.controller!);\n const ctrl = loop(inner, options?.iterations!);\n\n // Handle onComplete manually here, until we fix on re-motion\n if (options?.onComplete) {\n ctrl.setOnComplete?.(options?.onComplete);\n }\n\n ctrl.start();\n return;\n }\n\n this.buildDriver({ type, to, options }).start?.();\n } else {\n this.animation.set(u as V);\n }\n }\n\n private buildDriver(cfg: DriverConfig) {\n const anim = this.animation as MotionValue<number>;\n\n switch (cfg.type) {\n case 'spring':\n return spring(anim, cfg.to!, cfg.options);\n case 'timing':\n return timing(anim, cfg.to!, cfg.options);\n case 'decay':\n return decay(anim, cfg.options?.velocity!, cfg.options);\n case 'delay':\n return delay(cfg.options?.delay!);\n case 'sequence':\n return sequence(cfg.options!.steps!.map(this.buildDriver.bind(this)));\n default:\n throw new Error(`Unsupported driver type \"${cfg.type}\"`);\n }\n }\n\n get value(): MotionValue<V> {\n return this.animation;\n }\n\n get current(): V {\n return this.animation.current;\n }\n\n destroy() {\n this.unsubscribe?.();\n this.unsubscribe = undefined;\n }\n}\n","import { useEffect, useRef } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { Value } from '../Value';\nimport { Primitive, ToValue } from '../types';\n\ntype Input<V extends Primitive> = V | V[] | Record<string, V>;\n\ntype Output<V extends Primitive, I extends Input<V>> = I extends V\n ? MotionValue<V>\n : I extends V[]\n ? { [K in keyof I]: MotionValue<V> }\n : I extends Record<string, V>\n ? { [K in keyof I]: MotionValue<V> }\n : never;\n\ntype SetterParam<V extends Primitive, I extends Input<V>> = I extends V\n ? MotionValue<V> | ToValue<V>\n : I extends V[]\n ? Partial<{ [K in keyof I]: MotionValue<V> | ToValue<V> }>\n : I extends Record<string, V>\n ? Partial<{ [K in keyof I]: MotionValue<V> | ToValue<V> }>\n : never;\n\nexport function useValue<V extends Primitive, I extends Input<V>>(\n initial: I\n): [Output<V, I>, (to: SetterParam<V, I>) => void] {\n const storeRef = useRef<Array<[string, Value<V>]> | null>(null);\n if (storeRef.current === null) {\n const entries: Array<[string, Value<V>]> = [];\n\n if (Array.isArray(initial)) {\n (initial as V[]).forEach((v, i) => {\n entries.push([String(i), new Value(v)]);\n });\n } else if (typeof initial === 'object') {\n for (const [k, v] of Object.entries(initial as Record<string, V>)) {\n entries.push([k, new Value(v)]);\n }\n } else {\n entries.push(['__0', new Value(initial as V)]);\n }\n\n storeRef.current = entries;\n }\n\n useEffect(() => {\n return () => {\n storeRef.current!.forEach(([, val]) => val.destroy());\n };\n }, []);\n\n const values = (() => {\n const entries = storeRef.current!;\n if (Array.isArray(initial)) {\n return entries.map(([, val]) => val.value) as Output<V, I>;\n }\n if (typeof initial === 'object') {\n const out: Record<string, MotionValue<V>> = {};\n for (const [k, val] of entries) out[k] = val.value;\n return out as Output<V, I>;\n }\n return entries[0][1].value as Output<V, I>;\n })();\n\n const set = ((\n to:\n | MotionValue<V>\n | ToValue<V>\n | Array<MotionValue<V> | ToValue<V>>\n | Record<string, MotionValue<V> | ToValue<V>>\n ) => {\n const entries = storeRef.current!;\n if (Array.isArray(initial)) {\n const updates = to as Partial<Array<MotionValue<V> | ToValue<V>>>;\n Object.entries(updates).forEach(([i, val]) => {\n const index = Number(i);\n if (!isNaN(index) && val !== undefined) {\n entries[index]?.[1].set(val);\n }\n });\n } else if (typeof initial === 'object' && initial !== null) {\n const updates = to as Partial<\n Record<string, MotionValue<V> | ToValue<V>>\n >;\n for (const [k, v] of Object.entries(updates)) {\n const entry = entries.find(([ek]) => ek === k);\n if (entry && v !== undefined) entry[1].set(v);\n }\n } else {\n entries[0][1].set(to as MotionValue<V> | ToValue<V>);\n }\n }) as (to: SetterParam<V, I>) => void;\n\n return [values, set];\n}\n","import { Easing } from '@raidipesh78/re-motion';\n\nexport const AnimationConfig = {\n Timing: {\n BOUNCE: { duration: 500, easing: Easing.bounce },\n EASE_IN: { duration: 500, easing: Easing.in(Easing.ease) },\n EASE_OUT: { duration: 500, easing: Easing.out(Easing.ease) },\n EASE_IN_OUT: { duration: 500, easing: Easing.inOut(Easing.ease) },\n POWER1: { duration: 500, easing: Easing.bezier(0.17, 0.42, 0.51, 0.97) },\n POWER2: { duration: 500, easing: Easing.bezier(0.07, 0.11, 0.13, 1) },\n POWER3: { duration: 500, easing: Easing.bezier(0.09, 0.7, 0.16, 1.04) },\n POWER4: { duration: 500, easing: Easing.bezier(0.05, 0.54, 0, 1.03) },\n LINEAR: { duration: 500, easing: Easing.linear },\n },\n Spring: {\n ELASTIC: { mass: 1, friction: 18, tension: 250 },\n EASE: { mass: 1, friction: 26, tension: 170 },\n STIFF: { mass: 1, friction: 18, tension: 350 },\n WOBBLE: { mass: 1, friction: 8, tension: 250 },\n },\n};\n","import { AnimationConfig } from './AnimationConfig';\nimport { DriverConfig } from './types';\n\ninterface WithSpringOptions {\n mass?: number;\n tension?: number;\n friction?: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withSpring = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig => {\n return {\n type: 'spring',\n to,\n options: {\n stiffness: options?.tension ?? 100,\n damping: options?.friction ?? 10,\n mass: options?.mass ?? 1,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n };\n};\n\nexport const withEase = (\n to: number,\n options?: WithSpringOptions\n): DriverConfig =>\n withSpring(to, { ...options, ...AnimationConfig.Spring.EASE });\n\ninterface WithTimingOptions {\n duration?: number;\n easing?: (t: number) => number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withTiming = (\n to: number,\n options?: WithTimingOptions\n): DriverConfig => ({\n type: 'timing',\n to,\n options: {\n duration: options?.duration ?? 300,\n easing: options?.easing,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\ninterface WithDecayOptions {\n velocity: number;\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n clamp?: [number, number];\n}\n\nexport const withDecay = (options: WithDecayOptions): DriverConfig => ({\n type: 'decay',\n options: {\n velocity: options.velocity,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n clamp: options?.clamp,\n },\n});\n\ninterface WithSequenceOptions {\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withSequence = (\n steps: DriverConfig[],\n options?: WithSequenceOptions\n): DriverConfig => ({\n type: 'sequence',\n options: {\n steps,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n\nexport const withDelay = (delay: number): DriverConfig => ({\n type: 'delay',\n options: {\n delay,\n },\n});\n\ninterface WithLoopOptions {\n onStart?: () => void;\n onChange?: (v: number | string) => void;\n onRest?: () => void;\n}\n\nexport const withLoop = (\n controller: DriverConfig,\n iterations: number,\n options?: WithLoopOptions\n): DriverConfig => ({\n type: 'loop',\n options: {\n controller,\n iterations,\n onStart: options?.onStart,\n onChange: options?.onChange,\n onComplete: options?.onRest,\n },\n});\n","export const COLOR_NUMBER_REGEX =\n /[+-]?\\d+(\\.\\d+)?|[\\s]?\\.\\d+|#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/gi;\nexport const HEX_NAME_COLOR =\n /#[a-f\\d]{3,}|transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|burntsienna|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen/gi;\n\ninterface classNameType {\n [name: string]: string;\n}\n\n// Named colors\nexport const colorNames: classNameType = {\n transparent: '#00000000',\n aliceblue: '#f0f8ffff',\n antiquewhite: '#faebd7ff',\n aqua: '#00ffffff',\n aquamarine: '#7fffd4ff',\n azure: '#f0ffffff',\n beige: '#f5f5dcff',\n bisque: '#ffe4c4ff',\n black: '#000000ff',\n blanchedalmond: '#ffebcdff',\n blue: '#0000ffff',\n blueviolet: '#8a2be2ff',\n brown: '#a52a2aff',\n burlywood: '#deb887ff',\n burntsienna: '#ea7e5dff',\n cadetblue: '#5f9ea0ff',\n chartreuse: '#7fff00ff',\n chocolate: '#d2691eff',\n coral: '#ff7f50ff',\n cornflowerblue: '#6495edff',\n cornsilk: '#fff8dcff',\n crimson: '#dc143cff',\n cyan: '#00ffffff',\n darkblue: '#00008bff',\n darkcyan: '#008b8bff',\n darkgoldenrod: '#b8860bff',\n darkgray: '#a9a9a9ff',\n darkgreen: '#006400ff',\n darkgrey: '#a9a9a9ff',\n darkkhaki: '#bdb76bff',\n darkmagenta: '#8b008bff',\n darkolivegreen: '#556b2fff',\n darkorange: '#ff8c00ff',\n darkorchid: '#9932ccff',\n darkred: '#8b0000ff',\n darksalmon: '#e9967aff',\n darkseagreen: '#8fbc8fff',\n darkslateblue: '#483d8bff',\n darkslategray: '#2f4f4fff',\n darkslategrey: '#2f4f4fff',\n darkturquoise: '#00ced1ff',\n darkviolet: '#9400d3ff',\n deeppink: '#ff1493ff',\n deepskyblue: '#00bfffff',\n dimgray: '#696969ff',\n dimgrey: '#696969ff',\n dodgerblue: '#1e90ffff',\n firebrick: '#b22222ff',\n floralwhite: '#fffaf0ff',\n forestgreen: '#228b22ff',\n fuchsia: '#ff00ffff',\n gainsboro: '#dcdcdcff',\n ghostwhite: '#f8f8ffff',\n gold: '#ffd700ff',\n goldenrod: '#daa520ff',\n gray: '#808080ff',\n green: '#008000ff',\n greenyellow: '#adff2fff',\n grey: '#808080ff',\n honeydew: '#f0fff0ff',\n hotpink: '#ff69b4ff',\n indianred: '#cd5c5cff',\n indigo: '#4b0082ff',\n ivory: '#fffff0ff',\n khaki: '#f0e68cff',\n lavender: '#e6e6faff',\n lavenderblush: '#fff0f5ff',\n lawngreen: '#7cfc00ff',\n lemonchiffon: '#fffacdff',\n lightblue: '#add8e6ff',\n lightcoral: '#f08080ff',\n lightcyan: '#e0ffffff',\n lightgoldenrodyellow: '#fafad2ff',\n lightgray: '#d3d3d3ff',\n lightgreen: '#90ee90ff',\n lightgrey: '#d3d3d3ff',\n lightpink: '#ffb6c1ff',\n lightsalmon: '#ffa07aff',\n lightseagreen: '#20b2aaff',\n lightskyblue: '#87cefaff',\n lightslategray: '#778899ff',\n lightslategrey: '#778899ff',\n lightsteelblue: '#b0c4deff',\n lightyellow: '#ffffe0ff',\n lime: '#00ff00ff',\n limegreen: '#32cd32ff',\n linen: '#faf0e6ff',\n magenta: '#ff00ffff',\n maroon: '#800000ff',\n mediumaquamarine: '#66cdaaff',\n mediumblue: '#0000cdff',\n mediumorchid: '#ba55d3ff',\n mediumpurple: '#9370dbff',\n mediumseagreen: '#3cb371ff',\n mediumslateblue: '#7b68eeff',\n mediumspringgreen: '#00fa9aff',\n mediumturquoise: '#48d1ccff',\n mediumvioletred: '#c71585ff',\n midnightblue: '#191970ff',\n mintcream: '#f5fffaff',\n mistyrose: '#ffe4e1ff',\n moccasin: '#ffe4b5ff',\n navajowhite: '#ffdeadff',\n navy: '#000080ff',\n oldlace: '#fdf5e6ff',\n olive: '#808000ff',\n olivedrab: '#6b8e23ff',\n orange: '#ffa500ff',\n orangered: '#ff4500ff',\n orchid: '#da70d6ff',\n palegoldenrod: '#eee8aaff',\n palegreen: '#98fb98ff',\n paleturquoise: '#afeeeeff',\n palevioletred: '#db7093ff',\n papayawhip: '#ffefd5ff',\n peachpuff: '#ffdab9ff',\n peru: '#cd853fff',\n pink: '#ffc0cbff',\n plum: '#dda0ddff',\n powderblue: '#b0e0e6ff',\n purple: '#800080ff',\n rebeccapurple: '#663399ff',\n red: '#ff0000ff',\n rosybrown: '#bc8f8fff',\n royalblue: '#4169e1ff',\n saddlebrown: '#8b4513ff',\n salmon: '#fa8072ff',\n sandybrown: '#f4a460ff',\n seagreen: '#2e8b57ff',\n seashell: '#fff5eeff',\n sienna: '#a0522dff',\n silver: '#c0c0c0ff',\n skyblue: '#87ceebff',\n slateblue: '#6a5acdff',\n slategray: '#708090ff',\n slategrey: '#708090ff',\n snow: '#fffafaff',\n springgreen: '#00ff7fff',\n steelblue: '#4682b4ff',\n tan: '#d2b48cff',\n teal: '#008080ff',\n thistle: '#d8bfd8ff',\n tomato: '#ff6347ff',\n turquoise: '#40e0d0ff',\n violet: '#ee82eeff',\n wheat: '#f5deb3ff',\n white: '#ffffffff',\n whitesmoke: '#f5f5f5ff',\n yellow: '#ffff00ff',\n yellowgreen: '#9acd32ff',\n};\n\nfunction conv3to6(hex: string) {\n const regex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n\n return hex.replace(regex, function (_, r, g, b) {\n return '#' + r + r + g + g + b + b;\n });\n}\n\nfunction conv6to8(hex: string) {\n if (hex.length === 7) {\n return hex + 'FF';\n }\n\n return hex;\n}\n\nexport function hexToRgba(hex: string) {\n const hex6: string = conv3to6(hex);\n const hex8: string = conv6to8(hex6);\n const hexRgba: any =\n /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex8);\n\n return {\n r: parseInt(hexRgba[1], 16),\n g: parseInt(hexRgba[2], 16),\n b: parseInt(hexRgba[3], 16),\n a: parseInt(hexRgba[4], 16) / 255,\n };\n}\n\nexport function rgbaToHex(rgba: {\n r: number;\n g: number;\n b: number;\n a: number;\n}) {\n const { r, g, b, a } = rgba;\n\n const hexR = (r | (1 << 8)).toString(16).slice(1);\n const hexG = (g | (1 << 8)).toString(16).slice(1);\n const hexB = (b | (1 << 8)).toString(16).slice(1);\n const hexA = ((a * 255) | (1 << 8)).toString(16).slice(1);\n\n return '#' + hexR + hexG + hexB + hexA;\n}\n\nexport function processColor(color: number | string) {\n if (typeof color === 'number') {\n const alpha = ((color >> 24) & 255) / 255;\n const red = (color >> 16) & 255;\n const green = (color >> 8) & 255;\n const blue = color & 255;\n\n return { r: red, g: green, b: blue, a: alpha };\n } else {\n // If string then check whether it has # in 0 index\n if (color[0] === '#') {\n return hexToRgba(color);\n } else {\n // It is string color\n const hexColorName: string = colorNames[color];\n if (hexColorName) {\n return hexToRgba(hexColorName);\n } else {\n throw new Error('String cannot be parsed!');\n }\n }\n }\n}\n","import {\n rgbaToHex,\n hexToRgba,\n COLOR_NUMBER_REGEX,\n HEX_NAME_COLOR,\n colorNames,\n} from './colors';\n\ntype ExtrapolateType = 'identity' | 'extend' | 'clamp';\n\ntype ExtrapolateConfig = {\n extrapolate?: ExtrapolateType;\n extrapolateLeft?: ExtrapolateType;\n extrapolateRight?: ExtrapolateType;\n};\n\nconst interpolateValue = (\n val: number,\n arr: any,\n extrapolateLeft: ExtrapolateType,\n extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = arr;\n let result: number = val;\n\n // EXTRAPOLATE\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') {\n return result;\n } else if (extrapolateLeft === 'clamp') {\n result = inputMin;\n } else if (extrapolateLeft === 'extend') {\n // noop\n }\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') {\n return result;\n } else if (extrapolateRight === 'clamp') {\n result = inputMax;\n } else if (extrapolateRight === 'extend') {\n // noop\n }\n }\n\n if (outputMin === outputMax) {\n return outputMin;\n }\n\n if (inputMin === inputMax) {\n if (val <= inputMin) {\n return outputMin;\n }\n return outputMax;\n }\n\n // Input Range\n if (inputMin === -Infinity) {\n result = -result;\n } else if (inputMax === Infinity) {\n result = result - inputMin;\n } else {\n result = (result - inputMin) / (inputMax - inputMin);\n }\n\n // Output Range\n if (outputMin === -Infinity) {\n result = -result;\n } else if (outputMax === Infinity) {\n result = result + outputMin;\n } else {\n result = result * (outputMax - outputMin) + outputMin;\n }\n\n return result;\n};\n\nconst getNarrowedInput = function (\n x: number,\n input: number[],\n output: Array<number | string>\n): Array<number | string> {\n const length = input.length;\n let narrowedInput: Array<number | string> = [];\n\n // Boundaries\n if (x < input[0]) {\n narrowedInput = [input[0], input[1], output[0], output[1]];\n } else if (x > input[length - 1]) {\n narrowedInput = [\n input[length - 2],\n input[length - 1],\n output[length - 2],\n output[length - 1],\n ];\n }\n\n // Narrow the input and output ranges\n for (let i = 1; i < length; ++i) {\n if (x <= input[i]) {\n narrowedInput = [input[i - 1], input[i], output[i - 1], output[i]];\n break;\n }\n }\n\n return narrowedInput;\n};\n\nconst interpolateColor = (value: number, narrowedInput: string[]) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const outputMinProcessed = hexToRgba(outputMin);\n const outputMaxProcessed = hexToRgba(outputMax);\n\n const red = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.r, outputMaxProcessed.r],\n 'clamp',\n 'clamp'\n );\n\n const green = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.g, outputMaxProcessed.g],\n 'clamp',\n 'clamp'\n );\n\n const blue = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.b, outputMaxProcessed.b],\n 'clamp',\n 'clamp'\n );\n\n const alpha = interpolateValue(\n value,\n [inputMin, inputMax, outputMinProcessed.a, outputMaxProcessed.a],\n 'clamp',\n 'clamp'\n );\n\n return rgbaToHex({ r: red, g: green, b: blue, a: alpha });\n};\n\nconst _getArrayInterpolate = (\n value: number,\n narrowedInput: Array<any>,\n _extrapolateLeft: ExtrapolateType,\n _extrapolateRight: ExtrapolateType\n) => {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n if (outputMin.length === outputMax.length) {\n return outputMin.map((val: any, index: number) => {\n if (typeof val === 'string') {\n // IF IT IS STRING THEN IT MUST BE HEX COLOR\n return interpolateColor(value, [\n inputMin,\n inputMax,\n val,\n outputMax[index],\n ]);\n } else {\n return interpolateValue(\n value,\n [inputMin, inputMax, val, outputMax[index]],\n _extrapolateLeft,\n _extrapolateRight\n );\n }\n });\n } else {\n throw new Error(\"Array length doesn't match\");\n }\n};\n\nconst getTemplateString = (str: string) => {\n return str.replace(COLOR_NUMBER_REGEX, '$');\n};\n\nconst _getParsedStringArray = (str: any) => {\n return str.match(COLOR_NUMBER_REGEX).map((v: string) => {\n if (v.indexOf('#') !== -1) {\n return v;\n } else {\n return Number(v);\n }\n });\n};\n\nconst stringMatched = (str1: string, str2: string) =>\n getTemplateString(str1).trim().replace(/\\s/g, '') ===\n getTemplateString(str2).trim().replace(/\\s/g, '');\n\n/**\n * Function which proccess the\n * hexadecimal colors to its proper formats\n * @param str - string\n * @returns hex color string\n */\nconst getProcessedColor = (str: string) => {\n return str.replace(HEX_NAME_COLOR, function (match: any) {\n if (match.indexOf('#') !== -1) {\n return rgbaToHex(hexToRgba(match));\n } else if (Object.prototype.hasOwnProperty.call(colorNames, match)) {\n return colorNames[match];\n } else {\n throw new Error('String cannot be parsed!');\n }\n });\n};\n\nexport function interpolateNumbers(\n value: number,\n inputRange: Array<number>,\n outputRange: Array<number | string>,\n extrapolateConfig?: ExtrapolateConfig\n) {\n const extrapolate = extrapolateConfig?.extrapolate;\n const extrapolateLeft = extrapolateConfig?.extrapolateLeft;\n const extrapolateRight = extrapolateConfig?.extrapolateRight;\n\n const narrowedInput = getNarrowedInput(value, inputRange, outputRange);\n\n let _extrapolateLeft: ExtrapolateType = 'extend';\n if (extrapolateLeft !== undefined) {\n _extrapolateLeft = extrapolateLeft;\n } else if (extrapolate !== undefined) {\n _extrapolateLeft = extrapolate;\n }\n\n let _extrapolateRight: ExtrapolateType = 'extend';\n if (extrapolateRight !== undefined) {\n _extrapolateRight = extrapolateRight;\n } else if (extrapolate !== undefined) {\n _extrapolateRight = extrapolate;\n }\n\n if (outputRange.length) {\n if (typeof outputRange[0] === 'number') {\n return interpolateValue(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else if (Array.isArray(outputRange[0])) {\n return _getArrayInterpolate(\n value,\n narrowedInput,\n _extrapolateLeft,\n _extrapolateRight\n );\n } else {\n const [inputMin, inputMax, outputMin, outputMax] = narrowedInput;\n\n const processedOutputMin = getProcessedColor(outputMin as string);\n const processedOutputMax = getProcessedColor(outputMax as string);\n\n let templateString = getTemplateString(processedOutputMin);\n\n if (stringMatched(processedOutputMin, processedOutputMax)) {\n const outputMinParsed = _getParsedStringArray(processedOutputMin);\n const outputMaxParsed = _getParsedStringArray(processedOutputMax);\n\n const result = _getArrayInterpolate(\n value,\n [inputMin, inputMax, outputMinParsed, outputMaxParsed],\n _extrapolateLeft,\n _extrapolateRight\n );\n\n for (const v of result) templateString = templateString.replace('$', v);\n return templateString;\n } else {\n throw new Error(\"Output range doesn't match string format!\");\n }\n }\n } else {\n throw new Error('Output range cannot be Empty');\n }\n}\n","type MouseEventType =\n | 'click'\n | 'dblclick'\n | 'mousedown'\n | 'mousemove'\n | 'mouseup'\n | 'touchstart'\n | 'touchmove'\n | 'touchend'\n | 'mouseenter'\n | 'mouseleave'\n | 'mouseout'\n | 'mouseover'\n | 'scroll'\n | 'wheel'\n | 'contextmenu';\n\ntype DomTargetTypes = Array<Window | Document | HTMLElement>;\n\n/**\n * Attach single document / window event / HTMLElement\n */\nfunction attachEvent(\n domTargets: DomTargetTypes,\n event: MouseEventType,\n callback: (e: any) => void,\n capture: any = false\n) {\n domTargets.forEach((target) => {\n target.addEventListener(event, callback, capture);\n });\n\n return function () {\n domTargets.forEach((target) => {\n target.removeEventListener(event, callback, capture);\n });\n };\n}\n\n/**\n * Attach multiple document / window event / HTMLElement\n */\nexport function attachEvents(\n domTargets: DomTargetTypes,\n events: Array<\n [event: MouseEventType, callback: (e: any) => void, capture?: any]\n >\n) {\n const subscribers = new Map();\n\n events.forEach(function ([event, callback, capture = false]) {\n subscribers.set(event, attachEvent(domTargets, event, callback, capture));\n });\n\n return function (eventKeys?: Array<string>) {\n for (const [eventKey, subscriber] of subscribers.entries()) {\n if (!eventKeys) {\n subscriber();\n return;\n }\n\n if (eventKeys.indexOf(eventKey) !== -1) {\n subscriber();\n }\n }\n };\n}\n","/**\n * bin(booleanValue)\n * returns 1 if booleanValue == true and 0 if booleanValue == false\n */\nexport function bin(bool: boolean) {\n return bool ? 1 : 0;\n}\n\n/**\n * mix(progress, a, b)\n * linear interpolation between a and b\n */\nexport function mix(perc: number, val1: number, val2: number) {\n return val1 * (1 - perc) + val2 * perc;\n}\n\n/**\n * clamp(value, min, max)\n * clamps value for min and max bounds\n */\nexport function clamp(value: number, lowerbound: number, upperbound: number) {\n return Math.min(Math.max(value, lowerbound), upperbound);\n}\n\nfunction rubber2(distanceFromEdge: number, constant: number) {\n return Math.pow(distanceFromEdge, constant * 5);\n}\n\nfunction rubber(distanceFromEdge: number, dimension: number, constant: number) {\n if (dimension === 0 || Math.abs(dimension) === Infinity)\n return rubber2(distanceFromEdge, constant);\n return (\n (distanceFromEdge * dimension * constant) /\n (dimension + constant * distanceFromEdge)\n );\n}\n\n/**\n * rubberClamp(value, min, max, constant?)\n * constant is optional : default 0.15\n * clamps the value for min and max value and\n * extends beyond min and max values with constant\n * factor to create elastic rubber band effect\n */\nexport function rubberClamp(\n value: number,\n lowerbound: number,\n upperbound: number,\n constant: number = 0.15\n) {\n if (constant === 0) return clamp(value, lowerbound, upperbound);\n\n if (value < lowerbound) {\n return (\n -rubber(lowerbound - value, upperbound - lowerbound, constant) +\n lowerbound\n );\n }\n\n if (value > upperbound) {\n return (\n +rubber(value - upperbound, upperbound - lowerbound, constant) +\n upperbound\n );\n }\n\n return value;\n}\n\n/**\n * snapTo(value, velocity, snapPoints[])\n * Calculates the final snapPoint according to given current value,\n * velocity and snapPoints array\n */\nexport function snapTo(\n value: number,\n velocity: number,\n snapPoints: Array<number>\n): number {\n const finalValue = value + velocity * 0.2;\n const getDiff = (point: number) => Math.abs(point - finalValue);\n const deltas = snapPoints.map(getDiff);\n const minDelta = Math.min(...deltas);\n\n return snapPoints.reduce(function (acc, point) {\n if (getDiff(point) === minDelta) {\n return point;\n } else {\n return acc;\n }\n });\n}\n\n/**\n * move(array, moveIndex, toIndex)\n * move array item from moveIndex to toIndex without array modification\n */\nexport function move(array: Array<any>, moveIndex: number, toIndex: number) {\n const item = array[moveIndex];\n const length = array.length;\n const diff = moveIndex - toIndex;\n\n if (diff > 0) {\n return [\n ...array.slice(0, toIndex),\n item,\n ...array.slice(toIndex, moveIndex),\n ...array.slice(moveIndex + 1, length),\n ];\n } else if (diff < 0) {\n const targetIndex = toIndex + 1;\n return [\n ...array.slice(0, moveIndex),\n ...array.slice(moveIndex + 1, targetIndex),\n item,\n ...array.slice(targetIndex, length),\n ];\n }\n return array;\n}\n","export const withDefault = (x: number, y: number) => {\n return { x, y };\n};\n","export class Gesture {\n currentIndex?: number;\n lastTimeStamp: number = Date.now();\n isActive: boolean = false;\n targetElement?: HTMLElement; // represents the bounded element\n targetElements: Array<HTMLElement> = []; // represents the bounded elements\n config?: any;\n callback?: <T>(event: T) => void;\n _subscribe?: (eventKeys?: Array<string>) => void;\n static _VELOCITY_LIMIT: number = 20;\n\n // it must be overridden by other child classes\n _initEvents() {}\n\n // cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe();\n }\n }\n\n // re-apply new callback\n applyCallback(callback: <T>(event: T) => void) {\n this.callback = callback;\n }\n\n // apply gesture\n applyGesture({\n targetElement,\n targetElements,\n callback,\n config,\n }: {\n targetElement?: any;\n targetElements?: any;\n callback: <T>(event: T) => void;\n config?: any;\n }) {\n this.targetElement = targetElement;\n this.targetElements = targetElements.map(\n (element: { current: any }) => element.current\n );\n this.callback = callback;\n this.config = config;\n\n // initialize events\n this._initEvents();\n\n // unbind\n return () => this._subscribe && this._subscribe();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nimport type { Vector2 } from '../types';\n\nexport class DragGesture extends Gesture {\n movementStart: Vector2 = withDefault(0, 0);\n initialMovement: Vector2 = withDefault(0, 0);\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n offset: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement || this.targetElements.length > 0) {\n this._subscribe = attachEvents(\n [window],\n [\n ['mousedown', this.pointerDown.bind(this)],\n ['mousemove', this.pointerMove.bind(this)],\n ['mouseup', this.pointerUp.bind(this)],\n ['touchstart', this.pointerDown.bind(this), { passive: false }],\n ['touchmove', this.pointerMove.bind(this), { passive: false }],\n ['touchend', this.pointerUp.bind(this)],\n ]\n );\n }\n }\n\n // @override - cancel events\n // we only canceled down and move events because mouse up\n // will not be triggered\n _cancelEvents() {\n if (this._subscribe) {\n this._subscribe(['mousedown', 'mousemove', 'touchstart', 'touchmove']);\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n down: this.isActive,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.translation.x,\n offsetY: this.translation.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n distanceX: Math.abs(this.movement.x),\n distanceY: Math.abs(this.movement.y),\n directionX: Math.sign(this.movement.x),\n directionY: Math.sign(this.movement.y),\n cancel: () => {\n this._cancelEvents();\n },\n });\n }\n }\n\n pointerDown(e: any) {\n if (e.type === 'touchstart') {\n this.movementStart = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY,\n };\n } else {\n this.movementStart = { x: e.clientX, y: e.clientY };\n }\n\n this.movement = { x: 0, y: 0 };\n this.offset = { x: this.translation.x, y: this.translation.y };\n this.previousMovement = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n if (e.target === this.targetElement || currElem) {\n this.isActive = true;\n e.preventDefault();\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n // if initial function is defined then call it to get initial movementX and movementY\n // if only select to bounded draggable element\n const initial = this.config?.initial && this.config.initial();\n const initialMovementX = initial?.movementX;\n const initialMovementY = initial?.movementY;\n\n this.initialMovement = {\n x: initialMovementX ?? 0,\n y: initialMovementY ?? 0,\n };\n\n this.movement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this.previousMovement = {\n x: this.initialMovement.x,\n y: this.initialMovement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerMove(e: any) {\n if (this.isActive) {\n e.preventDefault();\n const now = Date.now();\n const deltaTime = clamp(now - this.lastTimeStamp, 0.1, 64);\n this.lastTimeStamp = now;\n\n const t = deltaTime / 1000;\n\n if (e.type === 'touchmove') {\n this.movement = {\n x:\n this.initialMovement.x +\n (e.touches[0].clientX - this.movementStart.x),\n y:\n this.initialMovement.y +\n (e.touches[0].clientY - this.movementStart.y),\n };\n } else {\n this.movement = {\n x: this.initialMovement.x + (e.clientX - this.movementStart.x),\n y: this.initialMovement.y + (e.clientY - this.movementStart.y),\n };\n }\n\n this.translation = {\n x: this.offset.x + this.movement.x,\n y: this.offset.y + this.movement.y,\n };\n\n this.velocity = {\n x: clamp(\n (this.movement.x - this.previousMovement.x) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n (this.movement.y - this.previousMovement.y) / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n }\n\n pointerUp() {\n if (this.isActive) {\n this.isActive = false;\n this._handleCallback();\n this._cancelEvents();\n this._initEvents();\n }\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class MouseMoveGesture extends Gesture {\n event?: MouseEvent;\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n } else if (this.targetElements.length > 0) {\n this._subscribe = attachEvents(this.targetElements, [\n ['mousemove', this.onMouseMove.bind(this)],\n ]);\n } else {\n this._subscribe = attachEvents(\n [window],\n [['mousemove', this.onMouseMove.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n args: [this.currentIndex],\n event: this.event,\n isMoving: this.isActive,\n target: this.event?.target,\n mouseX: this.movement.x,\n mouseY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onMouseMove(e: MouseEvent) {\n // find current selected element\n const currElem = this.targetElements.find((elem: any) => elem === e.target);\n\n // set args\n if (currElem) {\n this.currentIndex = this.targetElements.indexOf(currElem);\n }\n\n this.event = e;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n const x = e.clientX;\n const y = e.clientY;\n\n this.movement = { x, y };\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback();\n }, 250); // Debounce 250 milliseconds\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = { x: this.movement.x, y: this.movement.y };\n\n this._handleCallback();\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nexport class ScrollGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['scroll', this.scrollElementListener.bind(this)]]\n );\n } else {\n this._subscribe = attachEvents(\n [window],\n [['scroll', this.scrollListener.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n isScrolling: this.isActive,\n scrollX: this.movement.x,\n scrollY: this.movement.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n });\n }\n }\n\n onScroll({ x, y }: Vector2) {\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.movement = { x, y };\n\n // Clear if scrolling\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.direction = { x: 0, y: 0 };\n\n // Reset Velocity\n this.velocity = { x: 0, y: 0 };\n\n this._handleCallback(); // Debounce 250milliseconds\n }, 250);\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n\n scrollListener() {\n const { pageYOffset: y, pageXOffset: x } = window;\n this.onScroll({ x, y });\n }\n\n scrollElementListener() {\n const x = this.targetElement?.scrollLeft || 0;\n const y = this.targetElement?.scrollTop || 0;\n this.onScroll({ x, y });\n }\n}\n","import { attachEvents } from '../helpers/eventAttacher';\nimport { Vector2 } from '../types';\nimport { clamp } from '../helpers/math';\nimport { withDefault } from '../helpers/withDefault';\nimport { Gesture } from './Gesture';\n\nconst LINE_HEIGHT = 40;\nconst PAGE_HEIGHT = 800;\n\nexport class WheelGesture extends Gesture {\n isActiveID?: any;\n movement: Vector2 = withDefault(0, 0);\n previousMovement: Vector2 = withDefault(0, 0);\n direction: Vector2 = withDefault(0, 0);\n velocity: Vector2 = withDefault(0, 0);\n delta: Vector2 = withDefault(0, 0);\n\n // Holds offsets\n offset: Vector2 = withDefault(0, 0);\n translation: Vector2 = withDefault(0, 0);\n\n // @override\n // initialize the events\n _initEvents() {\n if (this.targetElement) {\n this._subscribe = attachEvents(\n [this.targetElement],\n [['wheel', this.onWheel.bind(this)]]\n );\n }\n }\n\n _handleCallback() {\n if (this.callback) {\n this.callback({\n target: this.targetElement,\n isWheeling: this.isActive,\n deltaX: this.delta.x,\n deltaY: this.delta.y,\n directionX: this.direction.x,\n directionY: this.direction.y,\n movementX: this.movement.x,\n movementY: this.movement.y,\n offsetX: this.offset.x,\n offsetY: this.offset.y,\n velocityX: this.velocity.x,\n velocityY: this.velocity.y,\n });\n }\n }\n\n onWheel(event: WheelEvent) {\n let { deltaX, deltaY, deltaMode } = event;\n\n const now: number = Date.now();\n const deltaTime = Math.min(now - this.lastTimeStamp, 64);\n this.lastTimeStamp = now;\n const t = deltaTime / 1000; // seconds\n\n this.isActive = true;\n\n if (this.isActiveID !== -1) {\n this.isActive = true;\n clearTimeout(this.isActiveID);\n }\n\n this.isActiveID = setTimeout(() => {\n this.isActive = false;\n this.translation = { x: this.offset.x, y: this.offset.y };\n this._handleCallback();\n\n this.velocity = { x: 0, y: 0 }; // Reset Velocity\n this.movement = { x: 0, y: 0 };\n }, 200);\n\n // normalize wheel values, especially for Firefox\n if (deltaMode === 1) {\n deltaX *= LINE_HEIGHT;\n deltaY *= LINE_HEIGHT;\n } else if (deltaMode === 2) {\n deltaX *= PAGE_HEIGHT;\n deltaY *= PAGE_HEIGHT;\n }\n\n this.delta = { x: deltaX, y: deltaY };\n this.movement = {\n x: this.movement.x + deltaX,\n y: this.movement.y + deltaY,\n };\n this.offset = {\n x: this.translation.x + this.movement.x,\n y: this.translation.y + this.movement.y,\n };\n\n const diffX = this.movement.x - this.previousMovement.x;\n const diffY = this.movement.y - this.previousMovement.y;\n\n this.direction = {\n x: Math.sign(diffX),\n y: Math.sign(diffY),\n };\n\n this.velocity = {\n x: clamp(\n diffX / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n y: clamp(\n diffY / t / 1000,\n -1 * Gesture._VELOCITY_LIMIT,\n Gesture._VELOCITY_LIMIT\n ),\n };\n\n this.previousMovement = {\n x: this.movement.x,\n y: this.movement.y,\n };\n\n this._handleCallback();\n }\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport * as React from 'react';\n\ntype UseRecognizerHandlerType = Array<\n [\n key: 'drag' | 'wheel' | 'move' | 'scroll',\n gesture: any,\n callback: any,\n config?: any\n ]\n>;\n\nexport const useRecognizer = (handlers: UseRecognizerHandlerType) => {\n const ref = React.useRef<any>();\n const elementRefs = React.useRef<Array<any>>([]);\n const subscribers = React.useRef<\n Map<string, { keyIndex: number; gesture: any; unsubscribe: any }>\n >(new Map()).current;\n\n // re-initiate callback on change\n React.useEffect(() => {\n for (let [, { keyIndex, gesture }] of subscribers.entries()) {\n const [, , callback] = handlers[keyIndex];\n gesture.applyCallback(callback);\n }\n }, [handlers]);\n\n React.useEffect(() => {\n handlers.forEach(([key, gesture, callback, config], keyIndex) => {\n queueMicrotask(() =>\n subscribers.set(key, {\n keyIndex,\n gesture,\n unsubscribe: gesture.applyGesture({\n targetElement: ref.current,\n targetElements: elementRefs.current,\n callback,\n config,\n }),\n })\n );\n });\n\n return () => {\n for (let [, { unsubscribe }] of subscribers.entries()) {\n unsubscribe && unsubscribe();\n }\n };\n });\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] =\n elementRefs.current[index] || React.createRef();\n\n return { ref: elementRefs.current[index] };\n }\n };\n};\n","import { useLayoutEffect, useRef, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { Value } from '../Value';\nimport { withSpring } from '../controllers';\nimport type { DriverConfig, ToValue } from '../types';\n\nexport function useAnimatedList<T>(\n items: T[],\n getKey: (item: T) => string,\n config?: {\n from?: number;\n enter?: ToValue<number>;\n exit?: ToValue<number>;\n }\n): Array<{ key: string; item: T; animation: MotionValue<number> }>;\n\nexport function useAnimatedList<T, I extends Record<string, number>>(\n items: T[],\n getKey: (item: T) => string,\n config: {\n from: I;\n enter?: Partial<{ [K in keyof I]: ToValue<I[K]> }>;\n exit?: Partial<{ [K in keyof I]: ToValue<I[K]> }>;\n }\n): Array<{\n key: string;\n item: T;\n animation: Record<keyof I, MotionValue<number>>;\n}>;\n\nexport function useAnimatedList(\n items: any[],\n getKey: (item: any) => string,\n config: any = {}\n) {\n const isMulti = typeof config.from === 'object' && config.from !== null;\n const fromObj: Record<string, number> = isMulti\n ? config.from\n : { value: config.from ?? 0 };\n\n const enterObj: Record<string, DriverConfig> = {};\n const exitObj: Record<string, DriverConfig> = {};\n\n Object.keys(fromObj).forEach((key) => {\n const rawEnter = isMulti ? config.enter?.[key] : config.enter;\n if (typeof rawEnter === 'number') {\n enterObj[key] = withSpring(rawEnter);\n } else if (rawEnter) {\n enterObj[key] = rawEnter;\n } else {\n enterObj[key] = withSpring(1);\n }\n\n const rawExit = isMulti ? config.exit?.[key] : config.exit;\n if (typeof rawExit === 'number') {\n exitObj[key] = withSpring(rawExit);\n } else if (rawExit) {\n exitObj[key] = rawExit;\n } else {\n exitObj[key] = withSpring(0);\n }\n });\n\n const itemsRef = useRef(\n new Map<string, { values: Record<string, Value<number>>; item: any }>()\n );\n const exitingRef = useRef(new Set<string>());\n const [, forceUpdate] = useState(0);\n\n useLayoutEffect(() => {\n const nextKeys = new Set(items.map(getKey));\n\n for (const item of items) {\n const key = getKey(item);\n if (!itemsRef.current.has(key)) {\n const values: Record<string, Value<number>> = {};\n Object.entries(fromObj).forEach(([prop, fromVal]) => {\n const val = new Value<number>(fromVal);\n val.set(enterObj[prop]);\n values[prop] = val;\n });\n itemsRef.current.set(key, { values, item });\n forceUpdate((c) => c + 1);\n } else {\n itemsRef.current.get(key)!.item = item;\n }\n }\n\n itemsRef.current.forEach(({ values }, key) => {\n if (!nextKeys.has(key) && !exitingRef.current.has(key)) {\n exitingRef.current.add(key);\n const props = Object.keys(values);\n props.forEach((prop, index) => {\n const base = exitObj[prop];\n values[prop].set({\n ...base,\n options: {\n ...base.options,\n onComplete: () => {\n if (index === props.length - 1) {\n itemsRef.current.delete(key);\n exitingRef.current.delete(key);\n forceUpdate((c) => c + 1);\n base.options?.onComplete?.();\n values[prop].destroy();\n }\n },\n },\n });\n });\n }\n });\n }, [\n items,\n getKey,\n JSON.stringify(fromObj),\n JSON.stringify(enterObj),\n JSON.stringify(exitObj),\n ]);\n\n return Array.from(itemsRef.current.entries()).map(\n ([key, { values, item }]) => {\n if (!isMulti) {\n return {\n key,\n item,\n animation: values['value'].value,\n };\n }\n const anims: Record<string, MotionValue<number>> = {};\n Object.entries(values).forEach(([prop, val]) => {\n anims[prop] = val.value;\n });\n return {\n key,\n item,\n animation: anims as Record<keyof any, MotionValue<number>>,\n };\n }\n );\n}\n","import * as React from 'react';\n\nimport { DragEventType, UseDragConfig } from '../types';\nimport { DragGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useDrag(\n callback: (event: DragEventType) => void,\n config?: UseDragConfig\n) {\n const gesture = React.useRef(new DragGesture()).current;\n\n return useRecognizer([['drag', gesture, callback, config]]);\n}\n","import * as React from 'react';\nimport {\n DragGesture,\n MouseMoveGesture,\n ScrollGesture,\n WheelGesture,\n} from '../controllers';\nimport {\n DragEventType,\n WheelEventType,\n ScrollEventType,\n MouseMoveEventType,\n} from '../types';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useGesture({\n onDrag,\n onWheel,\n onScroll,\n onMouseMove,\n}: {\n onDrag?: (event: DragEventType) => void;\n onWheel?: (event: WheelEventType) => void;\n onScroll?: (event: ScrollEventType) => void;\n onMouseMove?: (event: MouseMoveEventType) => void;\n}) {\n const dragGesture = React.useRef(new DragGesture()).current;\n const wheelGesture = React.useRef(new WheelGesture()).current;\n const scrollGesture = React.useRef(new ScrollGesture()).current;\n const mouseMoveGesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([\n ['drag', dragGesture, onDrag],\n ['wheel', wheelGesture, onWheel],\n ['scroll', scrollGesture, onScroll],\n ['move', mouseMoveGesture, onMouseMove],\n ]);\n}\n","import { useRef, useEffect, DependencyList, createRef } from 'react';\n\ntype MeasurementValue = number | Array<number>;\n\ntype MeasurementType = {\n left: MeasurementValue;\n top: MeasurementValue;\n width: MeasurementValue;\n height: MeasurementValue;\n vLeft: MeasurementValue;\n vTop: MeasurementValue;\n};\n\nexport function useMeasure(\n callback: (event: MeasurementType) => void,\n deps?: DependencyList\n) {\n const ref = useRef(null);\n const elementRefs = useRef([]);\n const callbackRef = useRef<(event: MeasurementType) => void>(callback);\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const _refElement = ref.current || document.documentElement;\n const _refElementsMultiple = elementRefs.current;\n\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { left, top, width, height } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n\n if (callbackRef) {\n if (_refElement === document.documentElement) {\n return; // no-op for document\n } else {\n callbackRef.current({\n left: left + pageXOffset,\n top: top + pageYOffset,\n width,\n height,\n vLeft: left,\n vTop: top,\n });\n }\n }\n });\n\n const resizeObserverMultiple = new ResizeObserver((entries) => {\n const left: Array<number> = [];\n const top: Array<number> = [];\n const width: Array<number> = [];\n const height: Array<number> = [];\n const vLeft: Array<number> = [];\n const vTop: Array<number> = [];\n\n entries.forEach((entry) => {\n const {\n left: _left,\n top: _top,\n width: _width,\n height: _height,\n } = entry.target.getBoundingClientRect();\n const { pageXOffset, pageYOffset } = window;\n const _pageLeft = _left + pageXOffset;\n const _pageTop = _top + pageYOffset;\n\n left.push(_pageLeft);\n top.push(_pageTop);\n width.push(_width);\n height.push(_height);\n vLeft.push(_left);\n vTop.push(_top);\n });\n\n if (callbackRef) {\n callbackRef.current({\n left,\n top,\n width,\n height,\n vLeft,\n vTop,\n });\n }\n });\n\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.observe(element.current);\n });\n } else {\n resizeObserver.observe(_refElement);\n }\n }\n\n return () => {\n if (_refElement) {\n if (\n _refElement === document.documentElement &&\n _refElementsMultiple.length > 0\n ) {\n _refElementsMultiple.forEach((element: any) => {\n resizeObserverMultiple.unobserve(element.current);\n });\n } else {\n resizeObserver.unobserve(_refElement);\n }\n }\n };\n }, []);\n\n return (index?: number) => {\n if (index === null || index === undefined) {\n return { ref };\n } else {\n elementRefs.current[index] = elementRefs.current[index] || createRef();\n\n return { ref: elementRefs.current[index] };\n }\n }; // ...bind() or ...bind(index) for multiple\n}\n","import { useLayoutEffect, useState } from 'react';\nimport { MotionValue } from '@raidipesh78/re-motion';\n\nimport { withSpring } from '../controllers';\nimport { useValue } from './useValue';\nimport type { DriverConfig, ToValue } from '../types';\n\nexport function useMount(\n isOpen: boolean,\n config?: { from?: number; enter?: ToValue<number>; exit?: ToValue<number> }\n): (\n fn: (value: MotionValue<number>, mounted: boolean) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount<I extends Record<string, number>>(\n isOpen: boolean,\n config: {\n from: I;\n enter?: Partial<Record<keyof I, ToValue<number>>>;\n exit?: Partial<Record<keyof I, ToValue<number>>>;\n }\n): (\n fn: (\n values: Record<keyof I, MotionValue<number>>,\n mounted: boolean\n ) => React.ReactNode\n) => React.ReactNode;\n\nexport function useMount(isOpen: boolean, config: any = {}) {\n const [mounted, setMounted] = useState(isOpen);\n\n const isMulti = typeof config.from === 'object' && config.from !== null;\n const fromObj: Record<string, number> = isMulti\n ? config.from\n : { value: config.from ?? 0 };\n\n const enterRaw: Record<string, ToValue<number>> = {};\n const exitRaw: Record<string, ToValue<number>> = {};\n Object.keys(fromObj).forEach((key) => {\n enterRaw[key] = isMulti ? config.enter?.[key] : config.enter;\n if (enterRaw[key] == null) enterRaw[key] = 1;\n\n exitRaw[key] = isMulti ? config.exit?.[key] : config.exit;\n if (exitRaw[key] == null) exitRaw[key] = 0;\n });\n\n const [values, setValues] = useValue(fromObj) as [\n Record<string, MotionValue<number>>,\n (to: Record<string, ToValue<number> | DriverConfig>) => void\n ];\n\n useLayoutEffect(() => {\n const keys = Object.keys(fromObj);\n\n if (isOpen) {\n setMounted(true);\n queueMicrotask(() => {\n const drivers: Record<string, DriverConfig> = {};\n keys.forEach((key) => {\n const param = enterRaw[key]!;\n drivers[key] =\n typeof param === 'object' && 'type' in param\n ? (param as DriverConfig)\n : withSpring(param as number);\n });\n setValues(drivers);\n });\n } else {\n queueMicrotask(() => {\n const drivers: Record<string, DriverConfig> = {};\n keys.forEach((key, i) => {\n const param = exitRaw[key]!;\n const base =\n typeof param === 'object' && 'type' in param\n ? (param as DriverConfig)\n : withSpring(param as number);\n\n drivers[key] = {\n ...base,\n options: {\n ...base.options,\n onComplete: () => {\n if (i === keys.length - 1) {\n setMounted(false);\n base.options?.onComplete?.();\n }\n },\n },\n };\n });\n setValues(drivers);\n });\n }\n }, [isOpen, JSON.stringify(enterRaw), JSON.stringify(exitRaw)]);\n\n if (!isMulti) {\n const single = values['value'] as MotionValue<number>;\n return (fn: (v: MotionValue<number>, m: boolean) => React.ReactNode) =>\n fn(single, mounted);\n }\n\n return (\n fn: (\n vals: Record<string, MotionValue<number>>,\n m: boolean\n ) => React.ReactNode\n ) => fn(values, mounted);\n}\n","import * as React from 'react';\n\nimport { MouseMoveEventType } from '../types';\nimport { MouseMoveGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useMouseMove(callback: (event: MouseMoveEventType) => void) {\n const gesture = React.useRef(new MouseMoveGesture()).current;\n\n return useRecognizer([['move', gesture, callback]]);\n}\n","import { useRef, useEffect, RefObject, DependencyList } from 'react';\n\nimport { attachEvents } from '../gestures/helpers/eventAttacher';\n\nexport function useOutsideClick(\n elementRef: RefObject<HTMLElement>,\n callback: (event: MouseEvent) => void,\n deps?: DependencyList\n) {\n const callbackRef = useRef<(event: MouseEvent) => void>();\n\n if (!callbackRef.current) {\n callbackRef.current = callback;\n }\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n const target = e.target as Node;\n\n if (!target || !target.isConnected) {\n return;\n }\n\n const isOutside =\n elementRef.current && !elementRef.current.contains(target);\n\n if (isOutside) {\n callbackRef.current && callbackRef.current(e);\n }\n };\n\n const subscribe = attachEvents(\n [document],\n [['mousedown', handleOutsideClick]]\n );\n\n return () => subscribe && subscribe();\n }, []);\n}\n","import * as React from 'react';\n\nimport { ScrollEventType } from '../types';\nimport { ScrollGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useScroll(callback: (event: ScrollEventType) => void) {\n const gesture = React.useRef(new ScrollGesture()).current;\n\n return useRecognizer([['scroll', gesture, callback]]);\n}\n","import * as React from 'react';\n\nimport { WheelEventType } from '../types';\nimport { WheelGesture } from '../controllers';\nimport { useRecognizer } from './useRecognizer';\n\nexport function useWheel(callback: (event: WheelEventType) => void) {\n const gesture = React.useRef(new WheelGesture()).current;\n\n return useRecognizer([['wheel', gesture, callback]]);\n}\n","import { useRef, useEffect, DependencyList } from 'react';\n\ntype WindowDimensionType = {\n width: number;\n height: number;\n innerWidth: number;\n innerHeight: number;\n};\n\nexport function useWindowDimension(\n callback: (event: WindowDimensionType) => void,\n deps?: DependencyList\n) {\n const windowDimensionsRef = useRef<WindowDimensionType>({\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n });\n const callbackRef = useRef<(event: WindowDimensionType) => void>(callback);\n\n const handleCallback: () => void = () => {\n if (callbackRef) {\n callbackRef.current({\n ...windowDimensionsRef.current,\n });\n }\n };\n\n // Re-initiate callback when dependency change\n useEffect(() => {\n callbackRef.current = callback;\n\n return () => {\n callbackRef.current = () => false;\n };\n }, deps);\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(([entry]) => {\n const { clientWidth, clientHeight } = entry.target;\n const { innerWidth, innerHeight } = window;\n\n windowDimensionsRef.current = {\n width: clientWidth,\n height: clientHeight,\n innerWidth,\n innerHeight,\n };\n\n handleCallback();\n });\n\n resizeObserver.observe(document.documentElement);\n\n return () => resizeObserver.unobserve(document.documentElement);\n }, []);\n}\n"],"names":["Value","initial","this","animation","MotionValue","prototype","set","u","_this","_a","unsubscribe","call","undefined","type","to","options","onChange","subscribe","controllers","_b","steps","map","step","buildDriver","ctrl","sequence","onComplete","_c","setOnComplete","start","inner","controller","loop","iterations","_d","_f","cfg","anim","spring","timing","decay","velocity","delay","bind","Error","concat","Object","defineProperty","get","current","destroy","useValue","storeRef","useRef","entries_1","Array","isArray","forEach","v","i","push","String","__values","entries","next","done","__read","value","k","useEffect","values","out","entries_2","entries_2_1","val","updates","index","Number","isNaN","_loop_1","entry","find","AnimationConfig","Timing","BOUNCE","duration","easing","Easing","bounce","EASE_IN","in","ease","EASE_OUT","EASE_IN_OUT","inOut","POWER1","bezier","POWER2","POWER3","POWER4","LINEAR","linear","Spring","ELASTIC","mass","friction","tension","EASE","STIFF","WOBBLE","withSpring","stiffness","damping","onStart","onRest","COLOR_NUMBER_REGEX","HEX_NAME_COLOR","colorNames","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexToRgba","hex","hex6","replace","_","r","g","b","conv3to6","hex8","length","conv6to8","hexRgba","exec","parseInt","a","rgbaToHex","rgba","toString","slice","interpolateValue","arr","extrapolateLeft","extrapolateRight","inputMin","inputMax","outputMin","outputMax","result","Infinity","_getArrayInterpolate","narrowedInput","_extrapolateLeft","_extrapolateRight","outputMinProcessed","outputMaxProcessed","interpolateColor","getTemplateString","str","_getParsedStringArray","match","indexOf","getProcessedColor","hasOwnProperty","attachEvents","domTargets","events","subscribers","Map","event","callback","capture","target","addEventListener","removeEventListener","attachEvent","eventKeys","eventKey","subscriber","clamp","lowerbound","upperbound","Math","min","max","rubber","distanceFromEdge","dimension","constant","abs","pow","rubber2","withDefault","x","y","Gesture","lastTimeStamp","Date","now","isActive","targetElements","_initEvents","_cancelEvents","_subscribe","applyCallback","applyGesture","targetElement","config","element","_VELOCITY_LIMIT","DragGesture","_super","movementStart","initialMovement","movement","previousMovement","translation","offset","__extends","window","pointerDown","pointerMove","pointerUp","passive","_handleCallback","args","currentIndex","down","movementX","movementY","offsetX","offsetY","velocityX","velocityY","distanceX","distanceY","directionX","sign","directionY","cancel","e","touches","clientX","clientY","currElem","elem","preventDefault","initialMovementX","initialMovementY","deltaTime","t","MouseMoveGesture","direction","onMouseMove","isMoving","mouseX","mouseY","isActiveID","clearTimeout","setTimeout","diffX","diffY","ScrollGesture","scrollElementListener","scrollListener","isScrolling","scrollX","scrollY","onScroll","pageYOffset","pageXOffset","scrollLeft","scrollTop","WheelGesture","delta","onWheel","isWheeling","deltaX","deltaY","deltaMode","useRecognizer","handlers","ref","React","elementRefs","_e","keyIndex","gesture","key","queueMicrotask","createRef","bool","inputRange","outputRange","extrapolateConfig","extrapolate","input","output","getNarrowedInput","str2","processedOutputMin","processedOutputMax","templateString","trim","outputMinParsed","outputMaxParsed","result_1","result_1_1","perc","val1","val2","array","moveIndex","toIndex","item","diff","__spreadArray","targetIndex","snapPoints","finalValue","getDiff","point","deltas","minDelta","reduce","acc","items","getKey","isMulti","from","fromObj","enterObj","exitObj","keys","rawEnter","enter","rawExit","exit","itemsRef","exitingRef","Set","forceUpdate","useState","useLayoutEffect","nextKeys","has","values_1","prop","fromVal","c","items_1","items_1_1","add","props_1","base","__assign","delete","JSON","stringify","anims","onDrag","dragGesture","wheelGesture","scrollGesture","mouseMoveGesture","deps","callbackRef","_refElement","document","documentElement","_refElementsMultiple","resizeObserver","ResizeObserver","getBoundingClientRect","left","top","width","height","vLeft","vTop","resizeObserverMultiple","_left","_top","_width","_height","_pageLeft","_pageTop","observe","unobserve","isOpen","mounted","setMounted","enterRaw","exitRaw","setValues","drivers","param","single_1","fn","elementRef","isConnected","contains","windowDimensionsRef","innerWidth","innerHeight","clientWidth","clientHeight"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-ui-animate",
3
- "version": "5.0.0-alpha.3",
3
+ "version": "5.0.0-alpha.4",
4
4
  "description": "React library for gestures and animation",
5
5
  "main": "dist/index.js",
6
6
  "peerDependencies": {