{"version":3,"sources":["webpack:///./src/js/modules/jump-links-timeline.js"],"names":["jumpLinksTimeline","Component","setupDefaults","this","dom","$sections","el","parentNode","querySelectorAll","$sectionsData","$jumpLinks","querySelector","$navWrapper","setObserver","createJumpLinks","observer","IntersectionObserver","entries","handleOnIntersect","root","treshold","rootMargin","innerHTML","cloneJumpLinks","cloneNode","forEach","section","index","setAttribute","observe","Array","from","indexOf","innerText","navJumpLink","addListeners","addEventListener","e","handleClick","entry","isIntersecting","item","classList","remove","find","x","getAttribute","target","closest","id","add","contains","preventDefault","substring","offset","offsetTop","window","scroll","top","behavior"],"mappings":"2FAAA,kBAEA,MAAMA,UAA0BC,YAC9BC,gBACEC,KAAKC,IAAM,CACTC,UAAWF,KAAKG,GAAGC,WAAWC,iBAAiB,sCAC/CC,cAAeN,KAAKG,GAAGC,WAAWC,iBAAiB,kBACnDE,WAAYP,KAAKG,GAAGK,cAAc,eAClCC,YAAaT,KAAKG,GAAGK,cAAc,yBAGrCR,KAAKU,cACLV,KAAKW,kBAGPD,cAMEV,KAAKY,SAAW,IAAIC,qBAAsBC,GAAYd,KAAKe,kBAAkBD,GAL7D,CACdE,KAAM,KACNC,SAAU,EACVC,WAAY,eAKhBP,kBACEX,KAAKC,IAAIM,WAAWY,UAAY,GAChC,MAAMC,EAAiBpB,KAAKC,IAAIM,WAAWc,WAAU,GAErDrB,KAAKC,IAAIC,UAAUoB,QAAQ,CAACC,EAASC,KACnCxB,KAAKC,IAAIK,cAAckB,GAAOC,aAAa,KAAO,qBAAoBD,GACtExB,KAAKY,SAASc,QAAQ1B,KAAKC,IAAIK,cAAckB,IAC7CJ,EAAeD,WAAc,wDAAuDQ,MAAMC,KAAK5B,KAAKC,IAAIK,eAAeuB,QAAQ7B,KAAKC,IAAIK,cAAckB,QAAYD,EAAQO,kBAE5K9B,KAAKC,IAAIM,WAAWY,UAAYC,EAAeD,UAE/CnB,KAAK+B,YAAc/B,KAAKG,GAAGE,iBAAiB,qBAG9C2B,eACEhC,KAAKC,IAAIM,WAAW0B,iBAAiB,QAAUC,GAAMlC,KAAKmC,YAAYD,IAGxEnB,kBAAkBD,GAChBA,EAAQQ,QAASc,IACW,MAAtBA,EAAMC,iBACRrC,KAAK+B,YAAYT,QAASgB,GAASA,EAAKC,UAAUC,OAAO,6BACzD,UAAAb,MAAMC,KAAK5B,KAAK+B,aACbU,KAAMC,GAAMA,EAAEC,aAAa,UAAa,IAAGP,EAAMQ,OAAOC,QAAQ,kBAAkBC,WADrF,SAEIP,UAAUQ,IAAI,+BAKxBZ,YAAYD,GACV,GAAIA,EAAEU,OAAOL,UAAUS,SAAS,oBAAqB,OACnDd,EAAEe,iBACF,MAAMH,EAAKZ,EAAEU,OAAOD,aAAa,QAAQO,UAAU,GAC7CC,EAAS,GACTP,GACJ,UAAAjB,MAAMC,KAAK5B,KAAKC,IAAIK,eAAemC,KAAMC,GAAMA,EAAEI,KAAOA,UAAxD,eAA6DM,WAAYD,EAC3EE,OAAOC,OAAO,CACZC,IAAKX,EACLY,SAAU,aAMH3D","file":"94.bundle.js","sourcesContent":["import { Component } from '@verndale/core'\n\nclass jumpLinksTimeline extends Component {\n setupDefaults() {\n this.dom = {\n $sections: this.el.parentNode.querySelectorAll('.jump-links__sections-container h3'),\n $sectionsData: this.el.parentNode.querySelectorAll('[data-section]'),\n $jumpLinks: this.el.querySelector('.jump-links'),\n $navWrapper: this.el.querySelector('.jump-links__wrapper')\n }\n\n this.setObserver()\n this.createJumpLinks()\n }\n\n setObserver() {\n const options = {\n root: null,\n treshold: 0,\n rootMargin: '0% 0% -90%'\n }\n this.observer = new IntersectionObserver((entries) => this.handleOnIntersect(entries), options)\n }\n\n createJumpLinks() {\n this.dom.$jumpLinks.innerHTML = ''\n const cloneJumpLinks = this.dom.$jumpLinks.cloneNode(true)\n\n this.dom.$sections.forEach((section, index) => {\n this.dom.$sectionsData[index].setAttribute('id', `jump-link-section-${index}`)\n this.observer.observe(this.dom.$sectionsData[index])\n cloneJumpLinks.innerHTML += `${section.innerText}`\n })\n this.dom.$jumpLinks.innerHTML = cloneJumpLinks.innerHTML\n\n this.navJumpLink = this.el.querySelectorAll('.jump-links__link')\n }\n\n addListeners() {\n this.dom.$jumpLinks.addEventListener('click', (e) => this.handleClick(e))\n }\n\n handleOnIntersect(entries) {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n this.navJumpLink.forEach((item) => item.classList.remove('jump-links__link--active'))\n Array.from(this.navJumpLink)\n .find((x) => x.getAttribute('href') === `#${entry.target.closest('[data-section]').id}`)\n ?.classList.add('jump-links__link--active')\n }\n })\n }\n\n handleClick(e) {\n if (e.target.classList.contains('jump-links__link')) {\n e.preventDefault()\n const id = e.target.getAttribute('href').substring(1)\n const offset = 65\n const target =\n Array.from(this.dom.$sectionsData).find((x) => x.id === id)?.offsetTop - offset\n window.scroll({\n top: target,\n behavior: 'smooth'\n })\n }\n }\n}\n\nexport default jumpLinksTimeline\n"],"sourceRoot":""}