File: /var/www/quadcode/frontend/node_modules/gsap/dist/Observer.min.js.map
{"version":3,"file":"Observer.min.js","sources":["../src/Observer.js"],"sourcesContent":["/*!\n * Observer 3.12.7\n * https://gsap.com\n *\n * @license Copyright 2008-2025, GreenSock. All rights reserved.\n * Subject to the terms at https://gsap.com/standard-license or for\n * Club GSAP members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nlet gsap, _coreInitted, _clamp, _win, _doc, _docEl, _body, _isTouch, _pointerType, ScrollTrigger, _root, _normalizer, _eventTypes, _context,\n\t_getGSAP = () => gsap || (typeof(window) !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap),\n\t_startup = 1,\n\t_observers = [],\n\t_scrollers = [],\n\t_proxies = [],\n\t_getTime = Date.now,\n\t_bridge = (name, value) => value,\n\t_integrate = () => {\n\t\tlet core = ScrollTrigger.core,\n\t\t\tdata = core.bridge || {},\n\t\t\tscrollers = core._scrollers,\n\t\t\tproxies = core._proxies;\n\t\tscrollers.push(..._scrollers);\n\t\tproxies.push(..._proxies);\n\t\t_scrollers = scrollers;\n\t\t_proxies = proxies;\n\t\t_bridge = (name, value) => data[name](value);\n\t},\n\t_getProxyProp = (element, property) => ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property],\n\t_isViewport = el => !!~_root.indexOf(el),\n\t_addListener = (element, type, func, passive, capture) => element.addEventListener(type, func, {passive: passive !== false, capture: !!capture}),\n\t_removeListener = (element, type, func, capture) => element.removeEventListener(type, func, !!capture),\n\t_scrollLeft = \"scrollLeft\",\n\t_scrollTop = \"scrollTop\",\n\t_onScroll = () => (_normalizer && _normalizer.isPressed) || _scrollers.cache++,\n\t_scrollCacheFunc = (f, doNotCache) => {\n\t\tlet cachingFunc = value => { // since reading the scrollTop/scrollLeft/pageOffsetY/pageOffsetX can trigger a layout, this function allows us to cache the value so it only gets read fresh after a \"scroll\" event fires (or while we're refreshing because that can lengthen the page and alter the scroll position). when \"soft\" is true, that means don't actually set the scroll, but cache the new value instead (useful in ScrollSmoother)\n\t\t\tif (value || value === 0) {\n\t\t\t\t_startup && (_win.history.scrollRestoration = \"manual\"); // otherwise the new position will get overwritten by the browser onload.\n\t\t\t\tlet isNormalizing = _normalizer && _normalizer.isPressed;\n\t\t\t\tvalue = cachingFunc.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); //TODO: iOS Bug: if you allow it to go to 0, Safari can start to report super strange (wildly inaccurate) touch positions!\n\t\t\t\tf(value);\n\t\t\t\tcachingFunc.cacheID = _scrollers.cache;\n\t\t\t\tisNormalizing && _bridge(\"ss\", value); // set scroll (notify ScrollTrigger so it can dispatch a \"scrollStart\" event if necessary\n\t\t\t} else if (doNotCache || _scrollers.cache !== cachingFunc.cacheID || _bridge(\"ref\")) {\n\t\t\t\tcachingFunc.cacheID = _scrollers.cache;\n\t\t\t\tcachingFunc.v = f();\n\t\t\t}\n\t\t\treturn cachingFunc.v + cachingFunc.offset;\n\t\t};\n\t\tcachingFunc.offset = 0;\n\t\treturn f && cachingFunc;\n\t},\n\t_horizontal = {s: _scrollLeft, p: \"left\", p2: \"Left\", os: \"right\", os2: \"Right\", d: \"width\", d2: \"Width\", a: \"x\", sc: _scrollCacheFunc(function(value) { return arguments.length ? _win.scrollTo(value, _vertical.sc()) : _win.pageXOffset || _doc[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0})},\n\t_vertical = {s: _scrollTop, p: \"top\", p2: \"Top\", os: \"bottom\", os2: \"Bottom\", d: \"height\", d2: \"Height\", a: \"y\", op: _horizontal, sc: _scrollCacheFunc(function(value) { return arguments.length ? _win.scrollTo(_horizontal.sc(), value) : _win.pageYOffset || _doc[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0})},\n\t_getTarget = (t, self) => ((self && self._ctx && self._ctx.selector) || gsap.utils.toArray)(t)[0] || (typeof(t) === \"string\" && gsap.config().nullTargetWarn !== false ? console.warn(\"Element not found:\", t) : null),\n\n\t_getScrollFunc = (element, {s, sc}) => { // we store the scroller functions in an alternating sequenced Array like [element, verticalScrollFunc, horizontalScrollFunc, ...] so that we can minimize memory, maximize performance, and we also record the last position as a \".rec\" property in order to revert to that after refreshing to ensure things don't shift around.\n\t\t_isViewport(element) && (element = _doc.scrollingElement || _docEl);\n\t\tlet i = _scrollers.indexOf(element),\n\t\t\toffset = sc === _vertical.sc ? 1 : 2;\n\t\t!~i && (i = _scrollers.push(element) - 1);\n\t\t_scrollers[i + offset] || _addListener(element, \"scroll\", _onScroll); // clear the cache when a scroll occurs\n\t\tlet prev = _scrollers[i + offset],\n\t\t\tfunc = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) { return arguments.length ? (element[s] = value) : element[s]; })));\n\t\tfunc.target = element;\n\t\tprev || (func.smooth = gsap.getProperty(element, \"scrollBehavior\") === \"smooth\"); // only set it the first time (don't reset every time a scrollFunc is requested because perhaps it happens during a refresh() when it's disabled in ScrollTrigger.\n\t\treturn func;\n\t},\n\t_getVelocityProp = (value, minTimeRefresh, useDelta) => {\n\t\tlet v1 = value,\n\t\t\tv2 = value,\n\t\t\tt1 = _getTime(),\n\t\t\tt2 = t1,\n\t\t\tmin = minTimeRefresh || 50,\n\t\t\tdropToZeroTime = Math.max(500, min * 3),\n\t\t\tupdate = (value, force) => {\n\t\t\t\tlet t = _getTime();\n\t\t\t\tif (force || t - t1 > min) {\n\t\t\t\t\tv2 = v1;\n\t\t\t\t\tv1 = value;\n\t\t\t\t\tt2 = t1;\n\t\t\t\t\tt1 = t;\n\t\t\t\t} else if (useDelta) {\n\t\t\t\t\tv1 += value;\n\t\t\t\t} else { // not totally necessary, but makes it a bit more accurate by adjusting the v1 value according to the new slope. This way we're not just ignoring the incoming data. Removing for now because it doesn't seem to make much practical difference and it's probably not worth the kb.\n\t\t\t\t\tv1 = v2 + (value - v2) / (t - t2) * (t1 - t2);\n\t\t\t\t}\n\t\t\t},\n\t\t\treset = () => { v2 = v1 = useDelta ? 0 : v1; t2 = t1 = 0; },\n\t\t\tgetVelocity = latestValue => {\n\t\t\t\tlet tOld = t2,\n\t\t\t\t\tvOld = v2,\n\t\t\t\t\tt = _getTime();\n\t\t\t\t(latestValue || latestValue === 0) && latestValue !== v1 && update(latestValue);\n\t\t\t\treturn (t1 === t2 || t - t2 > dropToZeroTime) ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1000;\n\t\t\t};\n\t\treturn {update, reset, getVelocity};\n\t},\n\t_getEvent = (e, preventDefault) => {\n\t\tpreventDefault && !e._gsapAllow && e.preventDefault();\n\t\treturn e.changedTouches ? e.changedTouches[0] : e;\n\t},\n\t_getAbsoluteMax = a => {\n\t\tlet max = Math.max(...a),\n\t\t\tmin = Math.min(...a);\n\t\treturn Math.abs(max) >= Math.abs(min) ? max : min;\n\t},\n\t_setScrollTrigger = () => {\n\t\tScrollTrigger = gsap.core.globals().ScrollTrigger;\n\t\tScrollTrigger && ScrollTrigger.core && _integrate();\n\t},\n\t_initCore = core => {\n\t\tgsap = core || _getGSAP();\n\t\tif (!_coreInitted && gsap && typeof(document) !== \"undefined\" && document.body) {\n\t\t\t_win = window;\n\t\t\t_doc = document;\n\t\t\t_docEl = _doc.documentElement;\n\t\t\t_body = _doc.body;\n\t\t\t_root = [_win, _doc, _docEl, _body];\n\t\t\t_clamp = gsap.utils.clamp;\n\t\t\t_context = gsap.core.context || function() {};\n\t\t\t_pointerType = \"onpointerenter\" in _body ? \"pointer\" : \"mouse\";\n\t\t\t// isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\t\t\t_isTouch = Observer.isTouch = _win.matchMedia && _win.matchMedia(\"(hover: none), (pointer: coarse)\").matches ? 1 : (\"ontouchstart\" in _win || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0) ? 2 : 0;\n\t\t\t_eventTypes = Observer.eventTypes = (\"ontouchstart\" in _docEl ? \"touchstart,touchmove,touchcancel,touchend\" : !(\"onpointerdown\" in _docEl) ? \"mousedown,mousemove,mouseup,mouseup\" : \"pointerdown,pointermove,pointercancel,pointerup\").split(\",\");\n\t\t\tsetTimeout(() => _startup = 0, 500);\n\t\t\t_setScrollTrigger();\n\t\t\t_coreInitted = 1;\n\t\t}\n\t\treturn _coreInitted;\n\t};\n\n_horizontal.op = _vertical;\n_scrollers.cache = 0;\n\nexport class Observer {\n\tconstructor(vars) {\n\t\tthis.init(vars);\n\t}\n\n\tinit(vars) {\n\t\t_coreInitted || _initCore(gsap) || console.warn(\"Please gsap.registerPlugin(Observer)\");\n\t\tScrollTrigger || _setScrollTrigger();\n\t\tlet {tolerance, dragMinimum, type, target, lineHeight, debounce, preventDefault, onStop, onStopDelay, ignore, wheelSpeed, event, onDragStart, onDragEnd, onDrag, onPress, onRelease, onRight, onLeft, onUp, onDown, onChangeX, onChangeY, onChange, onToggleX, onToggleY, onHover, onHoverEnd, onMove, ignoreCheck, isNormalizer, onGestureStart, onGestureEnd, onWheel, onEnable, onDisable, onClick, scrollSpeed, capture, allowClicks, lockAxis, onLockAxis} = vars;\n\t\tthis.target = target = _getTarget(target) || _docEl;\n\t\tthis.vars = vars;\n\t\tignore && (ignore = gsap.utils.toArray(ignore));\n\t\ttolerance = tolerance || 1e-9;\n\t\tdragMinimum = dragMinimum || 0;\n\t\twheelSpeed = wheelSpeed || 1;\n\t\tscrollSpeed = scrollSpeed || 1;\n\t\ttype = type || \"wheel,touch,pointer\";\n\t\tdebounce = debounce !== false;\n\t\tlineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report \"normal\", so default to 22.\n\t\tlet id, onStopDelayedCall, dragged, moved, wheeled, locked, axis,\n\t\t\tself = this,\n\t\t\tprevDeltaX = 0,\n\t\t\tprevDeltaY = 0,\n\t\t\tpassive = vars.passive || (!preventDefault && vars.passive !== false),\n\t\t\tscrollFuncX = _getScrollFunc(target, _horizontal),\n\t\t\tscrollFuncY = _getScrollFunc(target, _vertical),\n\t\t\tscrollX = scrollFuncX(),\n\t\t\tscrollY = scrollFuncY(),\n\t\t\tlimitToTouch = ~type.indexOf(\"touch\") && !~type.indexOf(\"pointer\") && _eventTypes[0] === \"pointerdown\", // for devices that accommodate mouse events and touch events, we need to distinguish.\n\t\t\tisViewport = _isViewport(target),\n\t\t\townerDoc = target.ownerDocument || _doc,\n\t\t\tdeltaX = [0, 0, 0], // wheel, scroll, pointer/touch\n\t\t\tdeltaY = [0, 0, 0],\n\t\t\tonClickTime = 0,\n\t\t\tclickCapture = () => onClickTime = _getTime(),\n\t\t\t_ignoreCheck = (e, isPointerOrTouch) => (self.event = e) && (ignore && ~ignore.indexOf(e.target)) || (isPointerOrTouch && limitToTouch && e.pointerType !== \"touch\") || (ignoreCheck && ignoreCheck(e, isPointerOrTouch)),\n\t\t\tonStopFunc = () => {\n\t\t\t\tself._vx.reset();\n\t\t\t\tself._vy.reset();\n\t\t\t\tonStopDelayedCall.pause();\n\t\t\t\tonStop && onStop(self);\n\t\t\t},\n\t\t\tupdate = () => {\n\t\t\t\tlet dx = self.deltaX = _getAbsoluteMax(deltaX),\n\t\t\t\t\tdy = self.deltaY = _getAbsoluteMax(deltaY),\n\t\t\t\t\tchangedX = Math.abs(dx) >= tolerance,\n\t\t\t\t\tchangedY = Math.abs(dy) >= tolerance;\n\t\t\t\tonChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.\n\t\t\t\tif (changedX) {\n\t\t\t\t\tonRight && self.deltaX > 0 && onRight(self);\n\t\t\t\t\tonLeft && self.deltaX < 0 && onLeft(self);\n\t\t\t\t\tonChangeX && onChangeX(self);\n\t\t\t\t\tonToggleX && ((self.deltaX < 0) !== (prevDeltaX < 0)) && onToggleX(self);\n\t\t\t\t\tprevDeltaX = self.deltaX;\n\t\t\t\t\tdeltaX[0] = deltaX[1] = deltaX[2] = 0\n\t\t\t\t}\n\t\t\t\tif (changedY) {\n\t\t\t\t\tonDown && self.deltaY > 0 && onDown(self);\n\t\t\t\t\tonUp && self.deltaY < 0 && onUp(self);\n\t\t\t\t\tonChangeY && onChangeY(self);\n\t\t\t\t\tonToggleY && ((self.deltaY < 0) !== (prevDeltaY < 0)) && onToggleY(self);\n\t\t\t\t\tprevDeltaY = self.deltaY;\n\t\t\t\t\tdeltaY[0] = deltaY[1] = deltaY[2] = 0\n\t\t\t\t}\n\t\t\t\tif (moved || dragged) {\n\t\t\t\t\tonMove && onMove(self);\n\t\t\t\t\tif (dragged) {\n\t\t\t\t\t\tonDragStart && dragged === 1 && onDragStart(self);\n\t\t\t\t\t\tonDrag && onDrag(self);\n\t\t\t\t\t\tdragged = 0;\n\t\t\t\t\t}\n\t\t\t\t\tmoved = false;\n\t\t\t\t}\n\t\t\t\tlocked && !(locked = false) && onLockAxis && onLockAxis(self);\n\t\t\t\tif (wheeled) {\n\t\t\t\t\tonWheel(self);\n\t\t\t\t\twheeled = false;\n\t\t\t\t}\n\t\t\t\tid = 0;\n\t\t\t},\n\t\t\tonDelta = (x, y, index) => {\n\t\t\t\tdeltaX[index] += x;\n\t\t\t\tdeltaY[index] += y;\n\t\t\t\tself._vx.update(x);\n\t\t\t\tself._vy.update(y);\n\t\t\t\tdebounce ? id || (id = requestAnimationFrame(update)) : update();\n\t\t\t},\n\t\t\tonTouchOrPointerDelta = (x, y) => {\n\t\t\t\tif (lockAxis && !axis) {\n\t\t\t\t\tself.axis = axis = Math.abs(x) > Math.abs(y) ? \"x\" : \"y\";\n\t\t\t\t\tlocked = true;\n\t\t\t\t}\n\t\t\t\tif (axis !== \"y\") {\n\t\t\t\t\tdeltaX[2] += x;\n\t\t\t\t\tself._vx.update(x, true); // update the velocity as frequently as possible instead of in the debounced function so that very quick touch-scrolls (flicks) feel natural. If it's the mouse/touch/pointer, force it so that we get snappy/accurate momentum scroll.\n\t\t\t\t}\n\t\t\t\tif (axis !== \"x\") {\n\t\t\t\t\tdeltaY[2] += y;\n\t\t\t\t\tself._vy.update(y, true);\n\t\t\t\t}\n\t\t\t\tdebounce ? id || (id = requestAnimationFrame(update)) : update();\n\t\t\t},\n\t\t\t_onDrag = e => {\n\t\t\t\tif (_ignoreCheck(e, 1)) {return;}\n\t\t\t\te = _getEvent(e, preventDefault);\n\t\t\t\tlet x = e.clientX,\n\t\t\t\t\ty = e.clientY,\n\t\t\t\t\tdx = x - self.x,\n\t\t\t\t\tdy = y - self.y,\n\t\t\t\t\tisDragging = self.isDragging;\n\t\t\t\tself.x = x;\n\t\t\t\tself.y = y;\n\t\t\t\tif (isDragging || ((dx || dy) && (Math.abs(self.startX - x) >= dragMinimum || Math.abs(self.startY - y) >= dragMinimum))) {\n\t\t\t\t\tdragged = isDragging ? 2 : 1; // dragged: 0 = not dragging, 1 = first drag, 2 = normal drag\n\t\t\t\t\tisDragging || (self.isDragging = true);\n\t\t\t\t\tonTouchOrPointerDelta(dx, dy);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_onPress = self.onPress = e => {\n\t\t\t\tif (_ignoreCheck(e, 1) || (e && e.button)) {return;}\n\t\t\t\tself.axis = axis = null;\n\t\t\t\tonStopDelayedCall.pause();\n\t\t\t\tself.isPressed = true;\n\t\t\t\te = _getEvent(e); // note: may need to preventDefault(?) Won't side-scroll on iOS Safari if we do, though.\n\t\t\t\tprevDeltaX = prevDeltaY = 0;\n\t\t\t\tself.startX = self.x = e.clientX;\n\t\t\t\tself.startY = self.y = e.clientY;\n\t\t\t\tself._vx.reset(); // otherwise the t2 may be stale if the user touches and flicks super fast and releases in less than 2 requestAnimationFrame ticks, causing velocity to be 0.\n\t\t\t\tself._vy.reset();\n\t\t\t\t_addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true);\n\t\t\t\tself.deltaX = self.deltaY = 0;\n\t\t\t\tonPress && onPress(self);\n\t\t\t},\n\t\t\t_onRelease = self.onRelease = e => {\n\t\t\t\tif (_ignoreCheck(e, 1)) {return;}\n\t\t\t\t_removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n\t\t\t\tlet isTrackingDrag = !isNaN(self.y - self.startY),\n\t\t\t\t\twasDragging = self.isDragging,\n\t\t\t\t\tisDragNotClick = wasDragging && (Math.abs(self.x - self.startX) > 3 || Math.abs(self.y - self.startY) > 3), // some touch devices need some wiggle room in terms of sensing clicks - the finger may move a few pixels.\n\t\t\t\t\teventData = _getEvent(e);\n\t\t\t\tif (!isDragNotClick && isTrackingDrag) {\n\t\t\t\t\tself._vx.reset();\n\t\t\t\t\tself._vy.reset();\n\t\t\t\t\t//if (preventDefault && allowClicks && self.isPressed) { // check isPressed because in a rare edge case, the inputObserver in ScrollTrigger may stopPropagation() on the press/drag, so the onRelease may get fired without the onPress/onDrag ever getting called, thus it could trigger a click to occur on a link after scroll-dragging it.\n\t\t\t\t\tif (preventDefault && allowClicks) {\n\t\t\t\t\t\tgsap.delayedCall(0.08, () => { // some browsers (like Firefox) won't trust script-generated clicks, so if the user tries to click on a video to play it, for example, it simply won't work. Since a regular \"click\" event will most likely be generated anyway (one that has its isTrusted flag set to true), we must slightly delay our script-generated click so that the \"real\"/trusted one is prioritized. Remember, when there are duplicate events in quick succession, we suppress all but the first one. Some browsers don't even trigger the \"real\" one at all, so our synthetic one is a safety valve that ensures that no matter what, a click event does get dispatched.\n\t\t\t\t\t\t\tif (_getTime() - onClickTime > 300 && !e.defaultPrevented) {\n\t\t\t\t\t\t\t\tif (e.target.click) { //some browsers (like mobile Safari) don't properly trigger the click event\n\t\t\t\t\t\t\t\t\te.target.click();\n\t\t\t\t\t\t\t\t} else if (ownerDoc.createEvent) {\n\t\t\t\t\t\t\t\t\tlet syntheticEvent = ownerDoc.createEvent(\"MouseEvents\");\n\t\t\t\t\t\t\t\t\tsyntheticEvent.initMouseEvent(\"click\", true, true, _win, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null);\n\t\t\t\t\t\t\t\t\te.target.dispatchEvent(syntheticEvent);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tself.isDragging = self.isGesturing = self.isPressed = false;\n\t\t\t\tonStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true);\n\t\t\t\tdragged && update(); // in case debouncing, we don't want onDrag to fire AFTER onDragEnd().\n\t\t\t\tonDragEnd && wasDragging && onDragEnd(self);\n\t\t\t\tonRelease && onRelease(self, isDragNotClick);\n\t\t\t},\n\t\t\t_onGestureStart = e => e.touches && e.touches.length > 1 && (self.isGesturing = true) && onGestureStart(e, self.isDragging),\n\t\t\t_onGestureEnd = () => (self.isGesturing = false) || onGestureEnd(self),\n\t\t\tonScroll = e => {\n\t\t\t\tif (_ignoreCheck(e)) {return;}\n\t\t\t\tlet x = scrollFuncX(),\n\t\t\t\t\ty = scrollFuncY();\n\t\t\t\tonDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1);\n\t\t\t\tscrollX = x;\n\t\t\t\tscrollY = y;\n\t\t\t\tonStop && onStopDelayedCall.restart(true);\n\t\t\t},\n\t\t\t_onWheel = e => {\n\t\t\t\tif (_ignoreCheck(e)) {return;}\n\t\t\t\te = _getEvent(e, preventDefault);\n\t\t\t\tonWheel && (wheeled = true);\n\t\t\t\tlet multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win.innerHeight : 1) * wheelSpeed;\n\t\t\t\tonDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0);\n\t\t\t\tonStop && !isNormalizer && onStopDelayedCall.restart(true);\n\t\t\t},\n\t\t\t_onMove = e => {\n\t\t\t\tif (_ignoreCheck(e)) {return;}\n\t\t\t\tlet x = e.clientX,\n\t\t\t\t\ty = e.clientY,\n\t\t\t\t\tdx = x - self.x,\n\t\t\t\t\tdy = y - self.y;\n\t\t\t\tself.x = x;\n\t\t\t\tself.y = y;\n\t\t\t\tmoved = true;\n\t\t\t\tonStop && onStopDelayedCall.restart(true);\n\t\t\t\t(dx || dy) && onTouchOrPointerDelta(dx, dy);\n\t\t\t},\n\t\t\t_onHover = e => {self.event = e; onHover(self);},\n\t\t\t_onHoverEnd = e => {self.event = e; onHoverEnd(self);},\n\t\t\t_onClick = e => _ignoreCheck(e) || (_getEvent(e, preventDefault) && onClick(self));\n\n\t\tonStopDelayedCall = self._dc = gsap.delayedCall(onStopDelay || 0.25, onStopFunc).pause();\n\n\t\tself.deltaX = self.deltaY = 0;\n\t\tself._vx = _getVelocityProp(0, 50, true);\n\t\tself._vy = _getVelocityProp(0, 50, true);\n\t\tself.scrollX = scrollFuncX;\n\t\tself.scrollY = scrollFuncY;\n\t\tself.isDragging = self.isGesturing = self.isPressed = false;\n\t\t_context(this);\n\t\tself.enable = e => {\n\t\t\tif (!self.isEnabled) {\n\t\t\t\t_addListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\t\t\t\ttype.indexOf(\"scroll\") >= 0 && _addListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, passive, capture);\n\t\t\t\ttype.indexOf(\"wheel\") >= 0 && _addListener(target, \"wheel\", _onWheel, passive, capture);\n\t\t\t\tif ((type.indexOf(\"touch\") >= 0 && _isTouch) || type.indexOf(\"pointer\") >= 0) {\n\t\t\t\t\t_addListener(target, _eventTypes[0], _onPress, passive, capture);\n\t\t\t\t\t_addListener(ownerDoc, _eventTypes[2], _onRelease);\n\t\t\t\t\t_addListener(ownerDoc, _eventTypes[3], _onRelease);\n\t\t\t\t\tallowClicks && _addListener(target, \"click\", clickCapture, true, true);\n\t\t\t\t\tonClick && _addListener(target, \"click\", _onClick);\n\t\t\t\t\tonGestureStart && _addListener(ownerDoc, \"gesturestart\", _onGestureStart);\n\t\t\t\t\tonGestureEnd && _addListener(ownerDoc, \"gestureend\", _onGestureEnd);\n\t\t\t\t\tonHover && _addListener(target, _pointerType + \"enter\", _onHover);\n\t\t\t\t\tonHoverEnd && _addListener(target, _pointerType + \"leave\", _onHoverEnd);\n\t\t\t\t\tonMove && _addListener(target, _pointerType + \"move\", _onMove);\n\t\t\t\t}\n\t\t\t\tself.isEnabled = true;\n\t\t\t\tself.isDragging = self.isGesturing = self.isPressed = moved = dragged = false;\n\t\t\t\tself._vx.reset();\n\t\t\t\tself._vy.reset();\n\t\t\t\tscrollX = scrollFuncX();\n\t\t\t\tscrollY = scrollFuncY();\n\t\t\t\te && e.type && _onPress(e);\n\t\t\t\tonEnable && onEnable(self);\n\t\t\t}\n\t\t\treturn self;\n\t\t};\n\t\tself.disable = () => {\n\t\t\tif (self.isEnabled) {\n\t\t\t\t// only remove the _onScroll listener if there aren't any others that rely on the functionality.\n\t\t\t\t_observers.filter(o => o !== self && _isViewport(o.target)).length || _removeListener(isViewport ? ownerDoc : target, \"scroll\", _onScroll);\n\t\t\t\tif (self.isPressed) {\n\t\t\t\t\tself._vx.reset();\n\t\t\t\t\tself._vy.reset();\n\t\t\t\t\t_removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true);\n\t\t\t\t}\n\t\t\t\t_removeListener(isViewport ? ownerDoc : target, \"scroll\", onScroll, capture);\n\t\t\t\t_removeListener(target, \"wheel\", _onWheel, capture);\n\t\t\t\t_removeListener(target, _eventTypes[0], _onPress, capture);\n\t\t\t\t_removeListener(ownerDoc, _eventTypes[2], _onRelease);\n\t\t\t\t_removeListener(ownerDoc, _eventTypes[3], _onRelease);\n\t\t\t\t_removeListener(target, \"click\", clickCapture, true);\n\t\t\t\t_removeListener(target, \"click\", _onClick);\n\t\t\t\t_removeListener(ownerDoc, \"gesturestart\", _onGestureStart);\n\t\t\t\t_removeListener(ownerDoc, \"gestureend\", _onGestureEnd);\n\t\t\t\t_removeListener(target, _pointerType + \"enter\", _onHover);\n\t\t\t\t_removeListener(target, _pointerType + \"leave\", _onHoverEnd);\n\t\t\t\t_removeListener(target, _pointerType + \"move\", _onMove);\n\t\t\t\tself.isEnabled = self.isPressed = self.isDragging = false;\n\t\t\t\tonDisable && onDisable(self);\n\t\t\t}\n\t\t};\n\n\t\tself.kill = self.revert = () => {\n\t\t\tself.disable();\n\t\t\tlet i = _observers.indexOf(self);\n\t\t\ti >= 0 && _observers.splice(i, 1);\n\t\t\t_normalizer === self && (_normalizer = 0);\n\t\t}\n\n\t\t_observers.push(self);\n\t\tisNormalizer && _isViewport(target) && (_normalizer = self);\n\n\t\tself.enable(event);\n\t}\n\n\tget velocityX() {\n\t\treturn this._vx.getVelocity();\n\t}\n\tget velocityY() {\n\t\treturn this._vy.getVelocity();\n\t}\n\n}\n\nObserver.version = \"3.12.7\";\nObserver.create = vars => new Observer(vars);\nObserver.register = _initCore;\nObserver.getAll = () => _observers.slice();\nObserver.getById = id => _observers.filter(o => o.vars.id === id)[0];\n\n_getGSAP() && gsap.registerPlugin(Observer);\n\nexport { Observer as default, _isViewport, _scrollers, _getScrollFunc, _getProxyProp, _proxies, _getVelocityProp, _vertical, _horizontal, _getTarget };"],"names":["_getGSAP","gsap","window","registerPlugin","_coreInitted","_win","_doc","_docEl","_body","_isTouch","_pointerType","ScrollTrigger","_root","_normalizer","_eventTypes","_context","_startup","_observers","_scrollers","_proxies","_getProxyProp","element","property","indexOf","_isViewport","el","_addListener","type","func","passive","capture","addEventListener","_removeListener","removeEventListener","_onScroll","isPressed","cache","_scrollCacheFunc","f","doNotCache","cachingFunc","value","history","scrollRestoration","isNormalizing","v","Math","round","iOS","cacheID","_bridge","offset","_getTarget","t","self","_ctx","selector","utils","toArray","config","nullTargetWarn","console","warn","_getScrollFunc","s","sc","scrollingElement","i","_vertical","push","prev","arguments","length","target","smooth","getProperty","_getVelocityProp","minTimeRefresh","useDelta","update","force","_getTime","min","t1","v2","v1","t2","dropToZeroTime","max","reset","getVelocity","latestValue","tOld","vOld","_getEvent","e","preventDefault","_gsapAllow","changedTouches","_getAbsoluteMax","a","abs","_setScrollTrigger","core","globals","_integrate","data","bridge","scrollers","proxies","name","_initCore","document","body","documentElement","clamp","context","Observer","isTouch","matchMedia","matches","navigator","maxTouchPoints","msMaxTouchPoints","eventTypes","split","setTimeout","Date","now","_scrollLeft","_scrollTop","_horizontal","p","p2","os","os2","d","d2","scrollTo","pageXOffset","op","pageYOffset","init","vars","tolerance","dragMinimum","lineHeight","debounce","onStop","onStopDelay","ignore","wheelSpeed","event","onDragStart","onDragEnd","onDrag","onPress","onRelease","onRight","onLeft","onUp","onDown","onChangeX","onChangeY","onChange","onToggleX","onToggleY","onHover","onHoverEnd","onMove","ignoreCheck","isNormalizer","onGestureStart","onGestureEnd","onWheel","onEnable","onDisable","onClick","scrollSpeed","allowClicks","lockAxis","onLockAxis","clickCapture","onClickTime","_ignoreCheck","isPointerOrTouch","limitToTouch","pointerType","dx","deltaX","dy","deltaY","changedX","changedY","prevDeltaX","prevDeltaY","moved","dragged","locked","wheeled","id","onDelta","x","y","index","_vx","_vy","requestAnimationFrame","onTouchOrPointerDelta","axis","_onDrag","clientX","clientY","isDragging","startX","startY","_onGestureStart","touches","isGesturing","_onGestureEnd","onScroll","scrollFuncX","scrollFuncY","scrollX","scrollY","onStopDelayedCall","restart","_onWheel","multiplier","deltaMode","innerHeight","_onMove","_onHover","_onHoverEnd","_onClick","parseFloat","getComputedStyle","this","isViewport","ownerDoc","ownerDocument","_onPress","button","pause","_onRelease","isTrackingDrag","isNaN","wasDragging","isDragNotClick","eventData","delayedCall","defaultPrevented","click","createEvent","syntheticEvent","initMouseEvent","screenX","screenY","dispatchEvent","_dc","onStopFunc","enable","isEnabled","disable","filter","o","kill","revert","splice","version","create","register","getAll","slice","getById"],"mappings":"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"}