{"version":3,"file":"ScrollToPlugin-C_5Brvuy.js","sources":["../../../node_modules/gsap/ScrollToPlugin.js"],"sourcesContent":["/*!\n * ScrollToPlugin 3.12.5\n * https://gsap.com\n *\n * @license Copyright 2008-2024, 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\n/* eslint-disable */\nvar gsap,\n _coreInitted,\n _window,\n _docEl,\n _body,\n _toArray,\n _config,\n ScrollTrigger,\n _windowExists = function _windowExists() {\n return typeof window !== \"undefined\";\n},\n _getGSAP = function _getGSAP() {\n return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n},\n _isString = function _isString(value) {\n return typeof value === \"string\";\n},\n _isFunction = function _isFunction(value) {\n return typeof value === \"function\";\n},\n _max = function _max(element, axis) {\n var dim = axis === \"x\" ? \"Width\" : \"Height\",\n scroll = \"scroll\" + dim,\n client = \"client\" + dim;\n return element === _window || element === _docEl || element === _body ? Math.max(_docEl[scroll], _body[scroll]) - (_window[\"inner\" + dim] || _docEl[client] || _body[client]) : element[scroll] - element[\"offset\" + dim];\n},\n _buildGetter = function _buildGetter(e, axis) {\n //pass in an element and an axis (\"x\" or \"y\") and it'll return a getter function for the scroll position of that element (like scrollTop or scrollLeft, although if the element is the window, it'll use the pageXOffset/pageYOffset or the documentElement's scrollTop/scrollLeft or document.body's. Basically this streamlines things and makes a very fast getter across browsers.\n var p = \"scroll\" + (axis === \"x\" ? \"Left\" : \"Top\");\n\n if (e === _window) {\n if (e.pageXOffset != null) {\n p = \"page\" + axis.toUpperCase() + \"Offset\";\n } else {\n e = _docEl[p] != null ? _docEl : _body;\n }\n }\n\n return function () {\n return e[p];\n };\n},\n _clean = function _clean(value, index, target, targets) {\n _isFunction(value) && (value = value(index, target, targets));\n\n if (typeof value !== \"object\") {\n return _isString(value) && value !== \"max\" && value.charAt(1) !== \"=\" ? {\n x: value,\n y: value\n } : {\n y: value\n }; //if we don't receive an object as the parameter, assume the user intends \"y\".\n } else if (value.nodeType) {\n return {\n y: value,\n x: value\n };\n } else {\n var result = {},\n p;\n\n for (p in value) {\n result[p] = p !== \"onAutoKill\" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];\n }\n\n return result;\n }\n},\n _getOffset = function _getOffset(element, container) {\n element = _toArray(element)[0];\n\n if (!element || !element.getBoundingClientRect) {\n return console.warn(\"scrollTo target doesn't exist. Using 0\") || {\n x: 0,\n y: 0\n };\n }\n\n var rect = element.getBoundingClientRect(),\n isRoot = !container || container === _window || container === _body,\n cRect = isRoot ? {\n top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),\n left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)\n } : container.getBoundingClientRect(),\n offsets = {\n x: rect.left - cRect.left,\n y: rect.top - cRect.top\n };\n\n if (!isRoot && container) {\n //only add the current scroll position if it's not the window/body.\n offsets.x += _buildGetter(container, \"x\")();\n offsets.y += _buildGetter(container, \"y\")();\n }\n\n return offsets;\n},\n _parseVal = function _parseVal(value, target, axis, currentVal, offset) {\n return !isNaN(value) && typeof value !== \"object\" ? parseFloat(value) - offset : _isString(value) && value.charAt(1) === \"=\" ? parseFloat(value.substr(2)) * (value.charAt(0) === \"-\" ? -1 : 1) + currentVal - offset : value === \"max\" ? _max(target, axis) - offset : Math.min(_max(target, axis), _getOffset(value, target)[axis] - offset);\n},\n _initCore = function _initCore() {\n gsap = _getGSAP();\n\n if (_windowExists() && gsap && typeof document !== \"undefined\" && document.body) {\n _window = window;\n _body = document.body;\n _docEl = document.documentElement;\n _toArray = gsap.utils.toArray;\n gsap.config({\n autoKillThreshold: 7\n });\n _config = gsap.config();\n _coreInitted = 1;\n }\n};\n\nexport var ScrollToPlugin = {\n version: \"3.12.5\",\n name: \"scrollTo\",\n rawVars: 1,\n register: function register(core) {\n gsap = core;\n\n _initCore();\n },\n init: function init(target, value, tween, index, targets) {\n _coreInitted || _initCore();\n var data = this,\n snapType = gsap.getProperty(target, \"scrollSnapType\");\n data.isWin = target === _window;\n data.target = target;\n data.tween = tween;\n value = _clean(value, index, target, targets);\n data.vars = value;\n data.autoKill = !!value.autoKill;\n data.getX = _buildGetter(target, \"x\");\n data.getY = _buildGetter(target, \"y\");\n data.x = data.xPrev = data.getX();\n data.y = data.yPrev = data.getY();\n ScrollTrigger || (ScrollTrigger = gsap.core.globals().ScrollTrigger);\n gsap.getProperty(target, \"scrollBehavior\") === \"smooth\" && gsap.set(target, {\n scrollBehavior: \"auto\"\n });\n\n if (snapType && snapType !== \"none\") {\n // disable scroll snapping to avoid strange behavior\n data.snap = 1;\n data.snapInline = target.style.scrollSnapType;\n target.style.scrollSnapType = \"none\";\n }\n\n if (value.x != null) {\n data.add(data, \"x\", data.x, _parseVal(value.x, target, \"x\", data.x, value.offsetX || 0), index, targets);\n\n data._props.push(\"scrollTo_x\");\n } else {\n data.skipX = 1;\n }\n\n if (value.y != null) {\n data.add(data, \"y\", data.y, _parseVal(value.y, target, \"y\", data.y, value.offsetY || 0), index, targets);\n\n data._props.push(\"scrollTo_y\");\n } else {\n data.skipY = 1;\n }\n },\n render: function render(ratio, data) {\n var pt = data._pt,\n target = data.target,\n tween = data.tween,\n autoKill = data.autoKill,\n xPrev = data.xPrev,\n yPrev = data.yPrev,\n isWin = data.isWin,\n snap = data.snap,\n snapInline = data.snapInline,\n x,\n y,\n yDif,\n xDif,\n threshold;\n\n while (pt) {\n pt.r(ratio, pt.d);\n pt = pt._next;\n }\n\n x = isWin || !data.skipX ? data.getX() : xPrev;\n y = isWin || !data.skipY ? data.getY() : yPrev;\n yDif = y - yPrev;\n xDif = x - xPrev;\n threshold = _config.autoKillThreshold;\n\n if (data.x < 0) {\n //can't scroll to a position less than 0! Might happen if someone uses a Back.easeOut or Elastic.easeOut when scrolling back to the top of the page (for example)\n data.x = 0;\n }\n\n if (data.y < 0) {\n data.y = 0;\n }\n\n if (autoKill) {\n //note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\n if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, \"x\")) {\n data.skipX = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, \"y\")) {\n data.skipY = 1; //if the user scrolls separately, we should stop tweening!\n }\n\n if (data.skipX && data.skipY) {\n tween.kill();\n data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);\n }\n }\n\n if (isWin) {\n _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);\n } else {\n data.skipY || (target.scrollTop = data.y);\n data.skipX || (target.scrollLeft = data.x);\n }\n\n if (snap && (ratio === 1 || ratio === 0)) {\n y = target.scrollTop;\n x = target.scrollLeft;\n snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty(\"scroll-snap-type\");\n target.scrollTop = y + 1; // bug in Safari causes the element to totally reset its scroll position when scroll-snap-type changes, so we need to set it to a slightly different value and then back again to work around this bug.\n\n target.scrollLeft = x + 1;\n target.scrollTop = y;\n target.scrollLeft = x;\n }\n\n data.xPrev = data.x;\n data.yPrev = data.y;\n ScrollTrigger && ScrollTrigger.update();\n },\n kill: function kill(property) {\n var both = property === \"scrollTo\",\n i = this._props.indexOf(property);\n\n if (both || property === \"scrollTo_x\") {\n this.skipX = 1;\n }\n\n if (both || property === \"scrollTo_y\") {\n this.skipY = 1;\n }\n\n i > -1 && this._props.splice(i, 1);\n return !this._props.length;\n }\n};\nScrollToPlugin.max = _max;\nScrollToPlugin.getOffset = _getOffset;\nScrollToPlugin.buildGetter = _buildGetter;\n_getGSAP() && gsap.registerPlugin(ScrollToPlugin);\nexport { ScrollToPlugin as default };"],"names":["gsap","_coreInitted","_window","_docEl","_body","_toArray","_config","ScrollTrigger","_windowExists","_getGSAP","_isString","value","_isFunction","_max","element","axis","dim","scroll","client","_buildGetter","e","p","_clean","index","target","targets","result","_getOffset","container","rect","isRoot","cRect","offsets","_parseVal","currentVal","offset","_initCore","ScrollToPlugin","core","tween","data","snapType","ratio","pt","autoKill","xPrev","yPrev","isWin","snap","snapInline","x","y","yDif","xDif","threshold","property","both","i"],"mappings":"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","x_google_ignoreList":[0]}