UNPKG

9.34 kBJavaScriptView Raw
1/*!
2 * Observer 3.10.3
3 * https://greensock.com
4 *
5 * @license Copyright 2022, GreenSock. All rights reserved.
6 * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership.
7 * @author: Jack Doyle, jack@greensock.com
8 */
9
10!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(c){"use strict";function _defineProperties(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function q(){return be||"undefined"!=typeof window&&(be=window.gsap)&&be.registerPlugin&&be}var be,we,Me,Pe,Oe,De,Xe,Ye,ke,t,ze,Ee,n=1,Te=[];c._scrollers=[],c._proxies=[];function w(e,t){return~c._proxies.indexOf(e)&&c._proxies[c._proxies.indexOf(e)+1][t]}function x(e){return!!~t.indexOf(e)}function y(e,t,n,r,o){return e.addEventListener(t,n,{passive:!r,capture:!!o})}function z(e,t,n){return e.removeEventListener(t,n)}function C(){return ze&&ze.isPressed||c._scrollers.cache++}function D(t){return function(e){return e||0===e?(n&&(Me.history.scrollRestoration="manual"),t(e),t.v=e,t.c=c._scrollers.cache,ze&&ze.isPressed&&o("ss",e)):c._scrollers.cache===t.c&&!o("ref")||(t.c=c._scrollers.cache,t.v=t()),t.v}}function G(e){return be.utils.toArray(e)[0]||("string"==typeof e&&!1!==be.config().nullTargetWarn?console.warn("Element not found:",e):null)}function H(t,e){var n=e.s,r=e.sc,o=c._scrollers.indexOf(t),i=r===Se.sc?1:2;return~o||(o=c._scrollers.push(t)-1),c._scrollers[o+i]||(c._scrollers[o+i]=w(t,n)||(x(t)?r:D(function(e){return arguments.length?t[n]=e:t[n]})))}function I(e,t,o){function Ha(e,t){var n=Ce();t||r<n-s?(c=i,i=e,a=s,s=n):o?i+=e:i=c+(e-c)/(n-a)*(s-a)}var i=e,c=e,s=Ce(),a=s,r=t||50,l=Math.max(500,3*r);return{update:Ha,reset:function reset(){c=i=o?0:i,a=s=0},getVelocity:function getVelocity(e){var t=a,n=c,r=Ce();return!e&&0!==e||e===i||Ha(e),s===a||l<r-a?0:(i+(o?n:-n))/((o?r:s)-t)*1e3}}}function J(e,t){return t&&!e._gsapAllow&&e.preventDefault(),e.changedTouches?e.changedTouches[0]:e}function K(e){var t=Math.max.apply(Math,e),n=Math.min.apply(Math,e);return Math.abs(t)>=Math.abs(n)?t:n}function L(){(ke=be.core.globals().ScrollTrigger)&&ke.core&&function _integrate(){var e=ke.core,n=e.bridge||{},t=e._scrollers,r=e._proxies;t.push.apply(t,c._scrollers),r.push.apply(r,c._proxies),c._scrollers=t,c._proxies=r,o=function _bridge(e,t){return n[e](t)}}()}function M(e){return(be=e||q())&&"undefined"!=typeof document&&document.body&&(Me=window,Oe=(Pe=document).documentElement,De=Pe.body,t=[Me,Pe,Oe,De],be.utils.clamp,Ye="onpointerenter"in De?"pointer":"mouse",Xe=s.isTouch=Me.matchMedia&&Me.matchMedia("(hover: none), (pointer: coarse)").matches?1:"ontouchstart"in Me||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints?2:0,Ee=s.eventTypes=("ontouchstart"in Oe?"touchstart,touchmove,touchcancel,touchend":"onpointerdown"in Oe?"pointerdown,pointermove,pointercancel,pointerup":"mousedown,mousemove,mouseup,mouseup").split(","),setTimeout(function(){return n=0},500),L(),we=1),we}var Ce=Date.now,o=function _bridge(e,t){return t},r="scrollLeft",i="scrollTop",He={s:r,p:"left",p2:"Left",os:"right",os2:"Right",d:"width",d2:"Width",a:"x",sc:D(function(e){return arguments.length?Me.scrollTo(e,Se.sc()):Me.pageXOffset||Pe[r]||Oe[r]||De[r]||0})},Se={s:i,p:"top",p2:"Top",os:"bottom",os2:"Bottom",d:"height",d2:"Height",a:"y",op:He,sc:D(function(e){return arguments.length?Me.scrollTo(He.sc(),e):Me.pageYOffset||Pe[i]||Oe[i]||De[i]||0})};He.op=Se,c._scrollers.cache=0;var s=(Observer.prototype.init=function init(e){we||M(be)||console.warn("Please gsap.registerPlugin(Observer)"),ke||L();var o=e.tolerance,c=e.dragMinimum,t=e.type,r=e.target,n=e.lineHeight,i=e.debounce,s=e.preventDefault,a=e.onStop,l=e.onStopDelay,u=e.ignore,d=e.wheelSpeed,f=e.event,g=e.onDragStart,p=e.onDragEnd,h=e.onDrag,v=e.onPress,_=e.onRelease,m=e.onRight,b=e.onLeft,w=e.onUp,P=e.onDown,O=e.onChangeX,D=e.onChangeY,X=e.onChange,Y=e.onToggleX,k=e.onToggleY,E=e.onHover,T=e.onHoverEnd,S=e.onMove,j=e.ignoreCheck,q=e.isNormalizer,A=e.onGestureStart,V=e.onGestureEnd,F=e.onWheel,R=e.onEnable,W=e.onDisable,B=e.onClick,N=e.scrollSpeed,U=e.capture,Q=e.allowClicks,Z=e.lockAxis,$=e.onLockAxis;function gc(){return _e=Ce()}function hc(e,t){return(se.event=e)&&u&&~u.indexOf(e.target)||t&&pe&&"touch"!==e.pointerType||j&&j(e,t)}function jc(){var e=se.deltaX=K(ye),t=se.deltaY=K(xe),n=Math.abs(e)>=o,r=Math.abs(t)>=o;X&&(n||r)&&X(se,e,t,ye,xe),n&&(m&&0<se.deltaX&&m(se),b&&se.deltaX<0&&b(se),O&&O(se),Y&&se.deltaX<0!=ae<0&&Y(se),ae=se.deltaX,ye[0]=ye[1]=ye[2]=0),r&&(P&&0<se.deltaY&&P(se),w&&se.deltaY<0&&w(se),D&&D(se),k&&se.deltaY<0!=le<0&&k(se),le=se.deltaY,xe[0]=xe[1]=xe[2]=0),(re||ne)&&(S&&S(se),$&&ie&&$(se),ne&&(h(se),ne=!1),re=ie=!1),oe&&(F(se),oe=!1),ee=0}function kc(e,t,n){ye[n]+=e,xe[n]+=t,se._vx.update(e),se._vy.update(t),i?ee=ee||requestAnimationFrame(jc):jc()}function lc(e,t){"y"!==ce&&(ye[2]+=e,se._vx.update(e,!0)),"x"!==ce&&(xe[2]+=t,se._vy.update(t,!0)),Z&&!ce&&(se.axis=ce=Math.abs(e)>Math.abs(t)?"x":"y",ie=!0),i?ee=ee||requestAnimationFrame(jc):jc()}function mc(e){if(!hc(e,1)){var t=(e=J(e,s)).clientX,n=e.clientY,r=t-se.x,o=n-se.y,i=se.isDragging;se.x=t,se.y=n,(i||Math.abs(se.startX-t)>=c||Math.abs(se.startY-n)>=c)&&(h&&(ne=!0),i||(se.isDragging=!0),lc(r,o),i||g&&g(se))}}function oc(t){if(!hc(t,1)){z(q?r:ve,Ee[1],mc);var e=se.isDragging&&(3<Math.abs(se.x-se.startX)||3<Math.abs(se.y-se.startY)),n=J(t);e||(se._vx.reset(),se._vy.reset(),s&&Q&&be.delayedCall(.05,function(){if(300<Ce()-_e&&!t.defaultPrevented)if(t.target.click)t.target.click();else if(ve.createEvent){var e=ve.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,Me,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(e)}})),se.isDragging=se.isGesturing=se.isPressed=!1,a&&!q&&te.restart(!0),p&&e&&p(se),_&&_(se,e)}}function pc(e){return e.touches&&1<e.touches.length&&(se.isGesturing=!0)&&A(e,se.isDragging)}function qc(){return(se.isGesturing=!1)||V(se)}function rc(e){if(!hc(e)){var t=ue(),n=de();kc((t-fe)*N,(n-ge)*N,1),fe=t,ge=n,a&&te.restart(!0)}}function sc(e){if(!hc(e)){e=J(e,s),F&&(oe=!0);var t=(1===e.deltaMode?n:2===e.deltaMode?Me.innerHeight:1)*d;kc(e.deltaX*t,e.deltaY*t,0),a&&!q&&te.restart(!0)}}function tc(e){if(!hc(e)){var t=e.clientX,n=e.clientY,r=t-se.x,o=n-se.y;se.x=t,se.y=n,re=!0,(r||o)&&lc(r,o)}}function uc(e){se.event=e,E(se)}function vc(e){se.event=e,T(se)}function wc(e){return hc(e)||J(e,s)&&B(se)}this.target=r=G(r)||Oe,this.vars=e,u=u&&be.utils.toArray(u),o=o||0,c=c||0,d=d||1,N=N||1,t=t||"wheel,touch,pointer",i=!1!==i,n=n||parseFloat(Me.getComputedStyle(De).lineHeight)||22;var ee,te,ne,re,oe,ie,ce,se=this,ae=0,le=0,ue=H(r,He),de=H(r,Se),fe=ue(),ge=de(),pe=~t.indexOf("touch")&&!~t.indexOf("pointer")&&"pointerdown"===Ee[0],he=x(r),ve=r.ownerDocument||Pe,ye=[0,0,0],xe=[0,0,0],_e=0,me=se.onPress=function(e){hc(e,1)||(se.axis=ce=null,te.pause(),se.isPressed=!0,e=J(e),ae=le=0,se.startX=se.x=e.clientX,se.startY=se.y=e.clientY,se._vx.reset(),se._vy.reset(),y(q?r:ve,Ee[1],mc,s,U),se.deltaX=se.deltaY=0,v&&v(se))};te=se._dc=be.delayedCall(l||.25,function onStopFunc(){se._vx.reset(),se._vy.reset(),te.pause(),a&&a(se)}).pause(),se.deltaX=se.deltaY=0,se._vx=I(0,50,!0),se._vy=I(0,50,!0),se.scrollX=ue,se.scrollY=de,se.isDragging=se.isGesturing=se.isPressed=!1,se.enable=function(e){return se.isEnabled||(y(he?ve:r,"scroll",C),0<=t.indexOf("scroll")&&y(he?ve:r,"scroll",rc,s,U),0<=t.indexOf("wheel")&&y(r,"wheel",sc,s,U),(0<=t.indexOf("touch")&&Xe||0<=t.indexOf("pointer"))&&(y(r,Ee[0],me,s,U),y(ve,Ee[2],oc),y(ve,Ee[3],oc),Q&&y(r,"click",gc,!1,!0),B&&y(r,"click",wc),A&&y(ve,"gesturestart",pc),V&&y(ve,"gestureend",qc),E&&y(r,Ye+"enter",uc),T&&y(r,Ye+"leave",vc),S&&y(r,Ye+"move",tc)),se.isEnabled=!0,e&&e.type&&me(e),R&&R(se)),se},se.disable=function(){se.isEnabled&&(Te.filter(function(e){return e!==se&&x(e.target)}).length||z(he?ve:r,"scroll",C),se.isPressed&&(se._vx.reset(),se._vy.reset(),z(q?r:ve,Ee[1],mc)),z(he?ve:r,"scroll",rc),z(r,"wheel",sc),z(r,Ee[0],me),z(ve,Ee[2],oc),z(ve,Ee[3],oc),z(r,"click",gc),z(r,"click",wc),z(ve,"gesturestart",pc),z(ve,"gestureend",qc),z(r,Ye+"enter",uc),z(r,Ye+"leave",vc),z(r,Ye+"move",tc),se.isEnabled=se.isPressed=se.isDragging=!1,W&&W(se))},se.kill=function(){se.disable();var e=Te.indexOf(se);0<=e&&Te.splice(e,1),ze===se&&(ze=0)},Te.push(se),q&&x(r)&&(ze=se),se.enable(f)},function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}(Observer,[{key:"velocityX",get:function get(){return this._vx.getVelocity()}},{key:"velocityY",get:function get(){return this._vy.getVelocity()}}]),Observer);function Observer(e){this.init(e)}s.version="3.10.3",s.create=function(e){return new s(e)},s.register=M,s.getAll=function(){return Te.slice()},s.getById=function(t){return Te.filter(function(e){return e.vars.id===t})[0]},q()&&be.registerPlugin(s),c.Observer=s,c._getProxyProp=w,c._getScrollFunc=H,c._getTarget=G,c._getVelocityProp=I,c._horizontal=He,c._isViewport=x,c._vertical=Se,c.default=s;if (typeof(window)==="undefined"||window!==c){Object.defineProperty(c,"__esModule",{value:!0})} else {delete c.default}});
11