{"version":3,"file":"jumplinks-DNzidPJl.js","sources":["../../node_modules/.pnpm/gsap@3.12.7/node_modules/gsap/dist/ScrollToPlugin.js","../../src/scripts/modules/jumplinks.ts"],"sourcesContent":["(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n\ttypeof define === 'function' && define.amd ? define(['exports'], factory) :\n\t(global = global || self, factory(global.window = global.window || {}));\n}(this, (function (exports) { 'use strict';\n\n\t/*!\n\t * ScrollToPlugin 3.12.7\n\t * https://gsap.com\n\t *\n\t * @license Copyright 2008-2025, GreenSock. All rights reserved.\n\t * Subject to the terms at https://gsap.com/standard-license or for\n\t * Club GSAP members, the agreement issued with that membership.\n\t * @author: Jack Doyle, jack@greensock.com\n\t*/\n\tvar gsap,\n\t _coreInitted,\n\t _window,\n\t _docEl,\n\t _body,\n\t _toArray,\n\t _config,\n\t ScrollTrigger,\n\t _windowExists = function _windowExists() {\n\t return typeof window !== \"undefined\";\n\t},\n\t _getGSAP = function _getGSAP() {\n\t return gsap || _windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap;\n\t},\n\t _isString = function _isString(value) {\n\t return typeof value === \"string\";\n\t},\n\t _isFunction = function _isFunction(value) {\n\t return typeof value === \"function\";\n\t},\n\t _max = function _max(element, axis) {\n\t var dim = axis === \"x\" ? \"Width\" : \"Height\",\n\t scroll = \"scroll\" + dim,\n\t client = \"client\" + dim;\n\t 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\t},\n\t _buildGetter = function _buildGetter(e, axis) {\n\t var p = \"scroll\" + (axis === \"x\" ? \"Left\" : \"Top\");\n\n\t if (e === _window) {\n\t if (e.pageXOffset != null) {\n\t p = \"page\" + axis.toUpperCase() + \"Offset\";\n\t } else {\n\t e = _docEl[p] != null ? _docEl : _body;\n\t }\n\t }\n\n\t return function () {\n\t return e[p];\n\t };\n\t},\n\t _clean = function _clean(value, index, target, targets) {\n\t _isFunction(value) && (value = value(index, target, targets));\n\n\t if (typeof value !== \"object\") {\n\t return _isString(value) && value !== \"max\" && value.charAt(1) !== \"=\" ? {\n\t x: value,\n\t y: value\n\t } : {\n\t y: value\n\t };\n\t } else if (value.nodeType) {\n\t return {\n\t y: value,\n\t x: value\n\t };\n\t } else {\n\t var result = {},\n\t p;\n\n\t for (p in value) {\n\t result[p] = p !== \"onAutoKill\" && _isFunction(value[p]) ? value[p](index, target, targets) : value[p];\n\t }\n\n\t return result;\n\t }\n\t},\n\t _getOffset = function _getOffset(element, container) {\n\t element = _toArray(element)[0];\n\n\t if (!element || !element.getBoundingClientRect) {\n\t return console.warn(\"scrollTo target doesn't exist. Using 0\") || {\n\t x: 0,\n\t y: 0\n\t };\n\t }\n\n\t var rect = element.getBoundingClientRect(),\n\t isRoot = !container || container === _window || container === _body,\n\t cRect = isRoot ? {\n\t top: _docEl.clientTop - (_window.pageYOffset || _docEl.scrollTop || _body.scrollTop || 0),\n\t left: _docEl.clientLeft - (_window.pageXOffset || _docEl.scrollLeft || _body.scrollLeft || 0)\n\t } : container.getBoundingClientRect(),\n\t offsets = {\n\t x: rect.left - cRect.left,\n\t y: rect.top - cRect.top\n\t };\n\n\t if (!isRoot && container) {\n\t offsets.x += _buildGetter(container, \"x\")();\n\t offsets.y += _buildGetter(container, \"y\")();\n\t }\n\n\t return offsets;\n\t},\n\t _parseVal = function _parseVal(value, target, axis, currentVal, offset) {\n\t 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\t},\n\t _initCore = function _initCore() {\n\t gsap = _getGSAP();\n\n\t if (_windowExists() && gsap && typeof document !== \"undefined\" && document.body) {\n\t _window = window;\n\t _body = document.body;\n\t _docEl = document.documentElement;\n\t _toArray = gsap.utils.toArray;\n\t gsap.config({\n\t autoKillThreshold: 7\n\t });\n\t _config = gsap.config();\n\t _coreInitted = 1;\n\t }\n\t};\n\n\tvar ScrollToPlugin = {\n\t version: \"3.12.7\",\n\t name: \"scrollTo\",\n\t rawVars: 1,\n\t register: function register(core) {\n\t gsap = core;\n\n\t _initCore();\n\t },\n\t init: function init(target, value, tween, index, targets) {\n\t _coreInitted || _initCore();\n\t var data = this,\n\t snapType = gsap.getProperty(target, \"scrollSnapType\");\n\t data.isWin = target === _window;\n\t data.target = target;\n\t data.tween = tween;\n\t value = _clean(value, index, target, targets);\n\t data.vars = value;\n\t data.autoKill = !!(\"autoKill\" in value ? value : _config).autoKill;\n\t data.getX = _buildGetter(target, \"x\");\n\t data.getY = _buildGetter(target, \"y\");\n\t data.x = data.xPrev = data.getX();\n\t data.y = data.yPrev = data.getY();\n\t ScrollTrigger || (ScrollTrigger = gsap.core.globals().ScrollTrigger);\n\t gsap.getProperty(target, \"scrollBehavior\") === \"smooth\" && gsap.set(target, {\n\t scrollBehavior: \"auto\"\n\t });\n\n\t if (snapType && snapType !== \"none\") {\n\t data.snap = 1;\n\t data.snapInline = target.style.scrollSnapType;\n\t target.style.scrollSnapType = \"none\";\n\t }\n\n\t if (value.x != null) {\n\t data.add(data, \"x\", data.x, _parseVal(value.x, target, \"x\", data.x, value.offsetX || 0), index, targets);\n\n\t data._props.push(\"scrollTo_x\");\n\t } else {\n\t data.skipX = 1;\n\t }\n\n\t if (value.y != null) {\n\t data.add(data, \"y\", data.y, _parseVal(value.y, target, \"y\", data.y, value.offsetY || 0), index, targets);\n\n\t data._props.push(\"scrollTo_y\");\n\t } else {\n\t data.skipY = 1;\n\t }\n\t },\n\t render: function render(ratio, data) {\n\t var pt = data._pt,\n\t target = data.target,\n\t tween = data.tween,\n\t autoKill = data.autoKill,\n\t xPrev = data.xPrev,\n\t yPrev = data.yPrev,\n\t isWin = data.isWin,\n\t snap = data.snap,\n\t snapInline = data.snapInline,\n\t x,\n\t y,\n\t yDif,\n\t xDif,\n\t threshold;\n\n\t while (pt) {\n\t pt.r(ratio, pt.d);\n\t pt = pt._next;\n\t }\n\n\t x = isWin || !data.skipX ? data.getX() : xPrev;\n\t y = isWin || !data.skipY ? data.getY() : yPrev;\n\t yDif = y - yPrev;\n\t xDif = x - xPrev;\n\t threshold = _config.autoKillThreshold;\n\n\t if (data.x < 0) {\n\t data.x = 0;\n\t }\n\n\t if (data.y < 0) {\n\t data.y = 0;\n\t }\n\n\t if (autoKill) {\n\t if (!data.skipX && (xDif > threshold || xDif < -threshold) && x < _max(target, \"x\")) {\n\t data.skipX = 1;\n\t }\n\n\t if (!data.skipY && (yDif > threshold || yDif < -threshold) && y < _max(target, \"y\")) {\n\t data.skipY = 1;\n\t }\n\n\t if (data.skipX && data.skipY) {\n\t tween.kill();\n\t data.vars.onAutoKill && data.vars.onAutoKill.apply(tween, data.vars.onAutoKillParams || []);\n\t }\n\t }\n\n\t if (isWin) {\n\t _window.scrollTo(!data.skipX ? data.x : x, !data.skipY ? data.y : y);\n\t } else {\n\t data.skipY || (target.scrollTop = data.y);\n\t data.skipX || (target.scrollLeft = data.x);\n\t }\n\n\t if (snap && (ratio === 1 || ratio === 0)) {\n\t y = target.scrollTop;\n\t x = target.scrollLeft;\n\t snapInline ? target.style.scrollSnapType = snapInline : target.style.removeProperty(\"scroll-snap-type\");\n\t target.scrollTop = y + 1;\n\t target.scrollLeft = x + 1;\n\t target.scrollTop = y;\n\t target.scrollLeft = x;\n\t }\n\n\t data.xPrev = data.x;\n\t data.yPrev = data.y;\n\t ScrollTrigger && ScrollTrigger.update();\n\t },\n\t kill: function kill(property) {\n\t var both = property === \"scrollTo\",\n\t i = this._props.indexOf(property);\n\n\t if (both || property === \"scrollTo_x\") {\n\t this.skipX = 1;\n\t }\n\n\t if (both || property === \"scrollTo_y\") {\n\t this.skipY = 1;\n\t }\n\n\t i > -1 && this._props.splice(i, 1);\n\t return !this._props.length;\n\t }\n\t};\n\tScrollToPlugin.max = _max;\n\tScrollToPlugin.getOffset = _getOffset;\n\tScrollToPlugin.buildGetter = _buildGetter;\n\n\tScrollToPlugin.config = function (vars) {\n\t _config || _initCore() || (_config = gsap.config());\n\n\t for (var p in vars) {\n\t _config[p] = vars[p];\n\t }\n\t};\n\n\t_getGSAP() && gsap.registerPlugin(ScrollToPlugin);\n\n\texports.ScrollToPlugin = ScrollToPlugin;\n\texports.default = ScrollToPlugin;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","import { Component } from '@verndale/core';\r\nimport { isDesktop } from '../helpers';\r\nimport { gsap } from 'gsap';\r\nimport ScrollTrigger from 'gsap/dist/ScrollTrigger';\r\nimport ScrollToPlugin from 'gsap/dist/ScrollToPlugin';\r\n\r\nclass Jumplinks extends Component {\r\n oldScrollY: number;\r\n scrollDirection: string;\r\n\r\n constructor(el: HTMLElement) {\r\n super(el);\r\n this.oldScrollY = 0;\r\n this.scrollDirection = '';\r\n }\r\n\r\n setupDefaults() {\r\n this.dom = {\r\n el: this.el,\r\n jumplinksSections: document.querySelectorAll('.jumplinks-section'),\r\n jumplinksElements: document.querySelectorAll('.jumplinks__link'),\r\n jumplinksContainer: document.querySelector('.admission-detail__left-container'),\r\n jumplinksTrigger: document.querySelector('.btn-admission-detail__trigger'),\r\n jumplinksCurrentSection: document.querySelector('span.current-section'),\r\n jumplinksMobileClose: document.querySelector('.btn-admission-detail__close')\r\n };\r\n\r\n this.initializeGSAP();\r\n }\r\n\r\n addListeners() {\r\n (this.dom.jumplinksElements as NodeList).forEach(element => {\r\n element.addEventListener('click', this.handleJumplinksClick.bind(this));\r\n });\r\n\r\n if (!isDesktop()) {\r\n (this.dom.jumplinksTrigger as HTMLElement).addEventListener(\r\n 'click',\r\n this.handleMobileJumplinksMenu.bind(this)\r\n );\r\n (this.dom.jumplinksMobileClose as HTMLElement).addEventListener(\r\n 'click',\r\n this.handleMobileJumplinksMenu.bind(this)\r\n );\r\n }\r\n }\r\n\r\n handleMobileJumplinksMenu() {\r\n (this.dom.jumplinksContainer as HTMLElement).classList.toggle('active');\r\n }\r\n\r\n handleJumplinksClick(e: Event) {\r\n e.preventDefault();\r\n const target = e.target as HTMLElement;\r\n const targetId = target.getAttribute('href');\r\n\r\n if (targetId) {\r\n const targetElement = document.querySelector(targetId) as HTMLElement;\r\n targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n }\r\n\r\n if (!isDesktop()) {\r\n (this.dom.jumplinksContainer as HTMLElement).classList.remove('active');\r\n }\r\n }\r\n\r\n initializeGSAP() {\r\n gsap.registerPlugin(ScrollToPlugin, ScrollTrigger);\r\n\r\n ScrollTrigger.config({\r\n autoRefreshEvents: 'visibilitychange, DOMContentLoaded, load, resize'\r\n });\r\n\r\n const links = [...(this.dom.jumplinksElements as NodeList)];\r\n const sections = [...(this.dom.jumplinksSections as NodeList)];\r\n\r\n links.forEach(link => {\r\n link.addEventListener('click', () => {\r\n for (let i = 0; i < (this.dom.jumplinksElements as NodeList)?.length; i++) {\r\n const prev = links;\r\n if ((prev[i] as HTMLElement).classList.contains('active')) {\r\n (prev[i] as HTMLElement).classList.remove('active');\r\n }\r\n }\r\n (this.el.querySelector('.jumplinks__links-wrapper') as HTMLElement).style.setProperty(\r\n '--inset-block-start',\r\n `${(link as HTMLElement).offsetTop}px`\r\n );\r\n });\r\n });\r\n\r\n sections.forEach((section, index) => {\r\n ScrollTrigger.create({\r\n trigger: section as HTMLElement,\r\n start: 'top center',\r\n end: 'bottom center',\r\n onToggle: self => {\r\n if (self.isActive) {\r\n (links[index] as HTMLElement).classList.add('active');\r\n (this.el.querySelector('.jumplinks__links-wrapper') as HTMLElement).style.setProperty(\r\n '--inset-block-start',\r\n `${(links[index] as HTMLElement).offsetTop}px`\r\n );\r\n } else {\r\n (links[index] as HTMLElement).classList.remove('active');\r\n }\r\n (this.dom.jumplinksElements as NodeList).forEach(element => {\r\n (element as HTMLElement).classList.contains('active')\r\n ? ((this.dom.jumplinksCurrentSection as HTMLElement).textContent =\r\n `${element.textContent}`)\r\n : null;\r\n });\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport default Jumplinks;\r\n"],"names":["global","factory","exports","this","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","vars","Jumplinks","Component","el","__publicField","isDesktop","targetId","links","sections","link","_a","prev","section","self"],"mappings":"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","x_google_ignoreList":[0]}