{"version":3,"sources":["webpack:///./src/js/modules/caseStudiesTabsV2.js"],"names":["Module","this","dom","tabs","el","querySelectorAll","panes","marker","querySelector","elementsSecondSlides","document","markerIndustry","setMarker","currentTab","isFullScreenCardHidden","dataset","hideFullscreen","forEach","tab","addEventListener","handleClick","window","handleResize","bind","event","currentTarget","preventDefault","removeActiveClass","classList","add","hrefId","getHref","animateSecondTabElements","animateFirstTabElements","getSecondTabElements","element","getFirstTabElements","index","style","setProperty","opacity","remove","setTimeout","bodyRect","getBoundingClientRect","clientRect","width","marginLeft","x","getAttribute","array","Component"],"mappings":"kwBAEMA,E,ieAEFC,KAAKC,IAAM,CACTC,KAAMF,KAAKG,GAAGC,iBAAiB,wCAC/BC,MAAOL,KAAKG,GAAGC,iBAAiB,mCAChCE,OAAQN,KAAKG,GAAGI,cAAc,WAC9BC,iCACKC,SAASL,iBAAiB,wCAE/BM,eAAgBV,KAAKG,GAAGI,cAAc,qBAExCP,KAAKW,UAAUX,KAAKC,IAAIC,KAAK,IAC7BF,KAAKY,WAAaZ,KAAKC,IAAIC,KAAK,GAChCF,KAAKa,uBAAyBb,KAAKG,GAAGW,QAAQC,iB,qCAGjC,WACbf,KAAKC,IAAIC,KAAKc,SAAQ,SAAAC,GAAA,OACpBA,EAAIC,iBAAiB,QAAW,EAAKC,YAArC,KAAgC,OAGlCC,OAAOF,iBAAiB,SAAUlB,KAAKqB,aAAaC,KAAKtB,S,qCAIzDA,KAAKW,UAAUX,KAAKY,c,kCAGVW,GACV,IAAMX,EAAaW,EAAMC,cACzBxB,KAAKY,WAAaA,EAClBW,EAAME,iBACNzB,KAAK0B,kBAAkB1B,KAAKC,IAAIC,MAChCF,KAAK0B,kBAAkB1B,KAAKC,IAAII,OAChCO,EAAWe,UAAUC,IAAI,UACzB,IAAMC,EAAS7B,KAAK8B,QAAQlB,GAC5BZ,KAAKG,GAAGI,cAAcsB,GAAQF,UAAUC,IAAI,UAE7B,iBAAXC,GAA8B7B,KAAKa,wBACrCb,KAAK+B,2BAGQ,kBAAXF,GAA+B7B,KAAKa,wBACtCb,KAAKgC,0BAGPhC,KAAKW,UAAUC,K,gDAGS,WACxBZ,KAAKiC,uBAAuBjB,SAAQ,SAAAkB,GAClCA,EAAQP,UAAUC,IAAI,mBAExB5B,KAAKmC,sBAAsBnB,SAAQ,SAACkB,EAASE,GAC3CF,EAAQG,MAAMC,YAAY,oBAAsC,IAAbF,EAAQ,GAA3D,MACAF,EAAQP,UAAUC,IAAI,iBACtB,EAAK3B,IAAIS,eAAe2B,MAAME,QAAU,O,iDAIjB,WACzBvC,KAAKiC,uBAAuBjB,SAAQ,SAAAkB,GAClCA,EAAQP,UAAUa,OAAO,mBAG3BxC,KAAKiC,uBAAuBjB,SAAQ,SAACkB,EAASE,GAC5CF,EAAQG,MAAMC,YAAY,oBAAsC,IAAbF,EAAQ,GAA3D,MACAF,EAAQP,UAAUa,OAAO,gBACzBN,EAAQP,UAAUC,IAAI,iBACtBa,YAAW,WACT,EAAKxC,IAAIS,eAAe2B,MAAME,QAAU,IACvC,U,4CAKL,kBAAW9B,SAASL,iBAAiB,+B,6CAIrC,kBACKK,SAASL,iBAAiB,gCAD/B,EAEKK,SAASL,iBAAiB,+B,gCAIvBQ,GACR,IAAM8B,EAAW1C,KAAKG,GACnBI,cAAc,mCACdoC,wBAEGC,EAAahC,EAAW+B,wBAC9B3C,KAAKC,IAAIK,OAAO+B,MAAMQ,MAAWD,EAAWC,MAA5C,KACA7C,KAAKC,IAAIK,OAAO+B,MAAMS,WAAgBF,EAAWG,EAAIL,EAASK,EAA9D,O,8BAGM9B,GACN,OAAOA,EAAIV,cAAc,KAAKyC,aAAa,U,wCAG3BC,GAChBA,EAAMjC,SAAQ,SAAAC,GAAA,OAAOA,EAAIU,UAAUa,OAAO,iB,GAvG9C,MAEqBU,W,UAyGNnD","file":"46.dcee05013c575a50235e.js","sourcesContent":["import { Component } from '@verndale/core';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n tabs: this.el.querySelectorAll('.case-studies-tabs-v2__nav-tabs > li'),\n panes: this.el.querySelectorAll('.case-studies-tabs-v2__tab-pane'),\n marker: this.el.querySelector('.marker'),\n elementsSecondSlides: [\n ...document.querySelectorAll('.case-studies-tabs-v2__nav-tabs li')\n ],\n markerIndustry: this.el.querySelector('.marker-industry')\n };\n this.setMarker(this.dom.tabs[0]);\n this.currentTab = this.dom.tabs[0];\n this.isFullScreenCardHidden = this.el.dataset.hideFullscreen;\n }\n\n addListeners() {\n this.dom.tabs.forEach(tab =>\n tab.addEventListener('click', ::this.handleClick)\n );\n\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n handleResize() {\n this.setMarker(this.currentTab);\n }\n\n handleClick(event) {\n const currentTab = event.currentTarget;\n this.currentTab = currentTab;\n event.preventDefault();\n this.removeActiveClass(this.dom.tabs);\n this.removeActiveClass(this.dom.panes);\n currentTab.classList.add('active');\n const hrefId = this.getHref(currentTab);\n this.el.querySelector(hrefId).classList.add('active');\n\n if (hrefId === '#our-clients' && !this.isFullScreenCardHidden) {\n this.animateSecondTabElements();\n }\n\n if (hrefId === '#case-studies' && !this.isFullScreenCardHidden) {\n this.animateFirstTabElements();\n }\n\n this.setMarker(currentTab);\n }\n\n animateFirstTabElements() {\n this.getSecondTabElements().forEach(element => {\n element.classList.add('slide-bottom');\n });\n this.getFirstTabElements().forEach((element, index) => {\n element.style.setProperty('--animation-delay', `${(index + 1) * 50}ms`);\n element.classList.add('load-elements');\n this.dom.markerIndustry.style.opacity = 0;\n });\n }\n\n animateSecondTabElements() {\n this.getSecondTabElements().forEach(element => {\n element.classList.remove('slide-bottom');\n });\n\n this.getSecondTabElements().forEach((element, index) => {\n element.style.setProperty('--animation-delay', `${(index + 1) * 50}ms`);\n element.classList.remove('slide-bottom');\n element.classList.add('load-elements');\n setTimeout(() => {\n this.dom.markerIndustry.style.opacity = 1;\n }, 1000);\n });\n }\n\n getFirstTabElements() {\n return [...document.querySelectorAll('.case-studies-tab__card')];\n }\n\n getSecondTabElements() {\n return [\n ...document.querySelectorAll('.case-studies-tab__logos li'),\n ...document.querySelectorAll('.case-studies-logo-card')\n ];\n }\n\n setMarker(currentTab) {\n const bodyRect = this.el\n .querySelector('.case-studies-tabs-v2__nav-tabs')\n .getBoundingClientRect();\n\n const clientRect = currentTab.getBoundingClientRect();\n this.dom.marker.style.width = `${clientRect.width}px`;\n this.dom.marker.style.marginLeft = `${clientRect.x - bodyRect.x}px`;\n }\n\n getHref(tab) {\n return tab.querySelector('a').getAttribute('href');\n }\n\n removeActiveClass(array) {\n array.forEach(tab => tab.classList.remove('active'));\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}