{"version":3,"sources":["webpack:///./src/js/modules/jump-links.js"],"names":["jumpLinks","Component","setupDefaults","this","dom","$sectionsData","Array","from","el","parentNode","querySelectorAll","$jumpLinks","querySelector","$images","reduce","array","obj","dataset","section","push","setObserver","scrollTo","insertSections","offsetTopPercentage","offsetHeight","window","innerHeight","options","root","threshold","rootMargin","observer","IntersectionObserver","entries","handleOnIntersect","addListeners","addEventListener","e","handleClick","forEach","image","scrollBy","scrollToSection","innerHTML","cloneJumpLinks","cloneNode","id","split","join","setAttribute","observe","navJumpLink","entry","isIntersecting","entryId","target","closest","item","classList","remove","jumplinkIndex","findIndex","x","getAttribute","add","contains","preventDefault","substring","offset","find","offsetTop","scroll","top","behavior"],"mappings":"2FAAA,kBAEA,MAAMA,UAAkBC,YACtBC,gBACEC,KAAKC,IAAM,CACTC,cAAeC,MAAMC,KAAKJ,KAAKK,GAAGC,WAAWC,iBAAiB,mBAC9DC,WAAYR,KAAKK,GAAGI,cAAc,eAClCC,QAASV,KAAKK,GAAGC,WAAWC,iBAAiB,QAG/CP,KAAKC,IAAIC,cAAgBF,KAAKC,IAAIC,cAAcS,OAAO,CAACC,EAAOC,KACzDA,EAAIC,QAAQC,SAASH,EAAMI,KAAKH,GAC7BD,GACN,IAEHZ,KAAKiB,cACLjB,KAAKkB,SAAW,GAChBlB,KAAKmB,iBAGPF,cACE,MAAMG,EAA8C,IAAvBpB,KAAKK,GAAGgB,aAAsBC,OAAOC,YAAc,EAE1EC,EAAU,CACdC,KAAM,KACNC,UAAW,KACXC,WAAa,IAAGP,UAJa,GAAKA,MAMpCpB,KAAK4B,SAAW,IAAIC,qBAAsBC,GAAY9B,KAAK+B,kBAAkBD,GAAUN,GAGzFQ,eACEhC,KAAKC,IAAIO,WAAWyB,iBAAiB,QAAUC,GAAMlC,KAAKmC,YAAYD,IACtElC,KAAKC,IAAIS,QAAQ0B,QAASC,GAAUA,EAAMJ,iBAAiB,OAASC,GAAMlC,KAAKsC,SAASJ,KAG1FI,SAASJ,GACHlC,KAAKkB,UACPlB,KAAKuC,gBAAgBvC,KAAKkB,UAI9BC,iBACEnB,KAAKC,IAAIO,WAAWgC,UAAY,GAChC,MAAMC,EAAiBzC,KAAKC,IAAIO,WAAWkC,WAAU,GAErD1C,KAAKC,IAAIC,cAAckC,QAASrB,IAC9B,MAAM4B,EAAK5B,EAAQD,QAAQC,QAAQ6B,MAAM,KAAKC,KAAK,IACnD9B,EAAQ+B,aAAa,KAAO,GAAEH,GAC9B3C,KAAK4B,SAASmB,QAAQhC,GACtB0B,EAAeD,WAAc,0CAAyCG,MAAO5B,EAAQD,QAAQC,qBAE/Ff,KAAKC,IAAIO,WAAWgC,UAAYC,EAAeD,UAE/CxC,KAAKgD,YAAchD,KAAKK,GAAGE,iBAAiB,qBAG9CwB,kBAAkBD,GAChBA,EAAQM,QAASa,IACf,GAAIA,EAAMC,eAAgB,CACxB,MAAMC,EAAUF,EAAMG,OAAOC,QAAQ,kBAAkBV,GACvD3C,KAAKgD,YAAYZ,QAASkB,GAASA,EAAKC,UAAUC,OAAO,6BACzD,MAAMC,EAAgBtD,MAAMC,KAAKJ,KAAKgD,aAAaU,UAChDC,GAAMA,EAAEC,aAAa,UAAa,IAAGT,GAExCnD,KAAKgD,YAAYS,GAAeF,UAAUM,IAAI,4BAC1C7D,KAAKkB,WAAaiC,IACpBnD,KAAKkB,SAAW,OAMxBiB,YAAYD,GACV,GAAIA,EAAEkB,OAAOG,UAAUO,SAAS,oBAAqB,CACnD5B,EAAE6B,iBACF,MAAMpB,EAAKT,EAAEkB,OAAOQ,aAAa,QAAQI,UAAU,GACnDhE,KAAKkB,SAAWyB,EAChB3C,KAAKuC,gBAAgBI,IAIzBJ,gBAAgBI,GAAI,MAClB,MAAMsB,EAASjE,KAAKK,GAAGgB,aACjB+B,GAAS,UAAAjD,MAAMC,KAAKJ,KAAKC,IAAIC,eAAegE,KAAMP,GAAMA,EAAEhB,KAAOA,UAAxD,eAA6DwB,WAAYF,EACxF3C,OAAO8C,OAAO,CACZC,IAAKjB,EAAO,GACZkB,SAAU,YAMDzE","file":"95.bundle.js","sourcesContent":["import { Component } from '@verndale/core'\n\nclass jumpLinks extends Component {\n setupDefaults() {\n this.dom = {\n $sectionsData: Array.from(this.el.parentNode.querySelectorAll('[data-section]')),\n $jumpLinks: this.el.querySelector('.jump-links'),\n $images: this.el.parentNode.querySelectorAll('img')\n }\n\n this.dom.$sectionsData = this.dom.$sectionsData.reduce((array, obj) => {\n if (obj.dataset.section) array.push(obj)\n return array\n }, [])\n\n this.setObserver()\n this.scrollTo = ''\n this.insertSections()\n }\n\n setObserver() {\n const offsetTopPercentage = (this.el.offsetHeight * 100) / window.innerHeight + 3\n const offsetBottomPercentage = 94 - offsetTopPercentage\n const options = {\n root: null,\n threshold: 0.001,\n rootMargin: `-${offsetTopPercentage}% 0% -${offsetBottomPercentage}%`\n }\n this.observer = new IntersectionObserver((entries) => this.handleOnIntersect(entries), options)\n }\n\n addListeners() {\n this.dom.$jumpLinks.addEventListener('click', (e) => this.handleClick(e))\n this.dom.$images.forEach((image) => image.addEventListener('load', (e) => this.scrollBy(e)))\n }\n\n scrollBy(e) {\n if (this.scrollTo) {\n this.scrollToSection(this.scrollTo)\n }\n }\n\n insertSections() {\n this.dom.$jumpLinks.innerHTML = ''\n const cloneJumpLinks = this.dom.$jumpLinks.cloneNode(true)\n\n this.dom.$sectionsData.forEach((section) => {\n const id = section.dataset.section.split(' ').join('')\n section.setAttribute('id', `${id}`)\n this.observer.observe(section)\n cloneJumpLinks.innerHTML += `