{"version":3,"sources":["webpack:///./src/js/modules/leadership-landing-team-selector.js"],"names":["Module","Component","setupDefaults","this","dom","$list","el","_$","$teamElements","_$$","$dropdown","parentElement","buttonClass","activeClass","activeElement","forEach","item","index","style","display","populateList","linkToSection","addListeners","_on","handleDropdownChange","bind","options","length","Option","dataset","displayName","event","CustomEvent","dispatchEvent","listItems","innerHTML","$listElements","handleListElementClick","e","target","value","showActiveTeam","classList","add","remove","urlParams","URLSearchParams","window","location","search","tabIndex","get","dataIndex","activeTab","data","querySelector","offset","offsetTop","btn","scrollTo","top","behavior","setTimeout","click"],"mappings":"2FAAA,yBAGA,MAAMA,UAAeC,YACnBC,gBACEC,KAAKC,IAAM,CACTC,MAAOF,KAAKG,GAAGC,GAAG,2CAClBC,cAAeL,KAAKG,GAAGG,IAAI,qEAC3BC,UAAWP,KAAKG,GAAGK,cAAcJ,GAAG,4BAGtCJ,KAAKS,YAAc,yCACnBT,KAAKU,YAAc,iDACnBV,KAAKW,cAAgB,EAErBX,KAAKC,IAAII,cAAcO,QAAQ,CAACC,EAAMC,KAChCA,EAAQ,IAAGD,EAAKE,MAAMC,QAAU,UAGtChB,KAAKiB,eACLjB,KAAKkB,gBAGPC,eACEnB,KAAKC,IAAIM,UAAUa,IAAI,SAAUpB,KAAKqB,qBAAqBC,KAAKtB,OAGlEiB,eAEEjB,KAAKC,IAAIM,UAAUgB,QAAQC,OAAS,EAEpCxB,KAAKC,IAAII,cAAcO,QAAQ,CAACC,EAAMC,KACpCd,KAAKC,IAAIM,UAAUgB,QAAQT,GAAS,IAAIW,OAAOZ,EAAKa,QAAQC,YAAab,EAAiB,IAAVA,KAGlF,MAAMc,EAAQ,IAAIC,YAAY,UAC9B7B,KAAKC,IAAIM,UAAUuB,cAAcF,GAGjC,IAAIG,EAAY,GAEhB/B,KAAKC,IAAII,cAAcO,QAAQ,CAACC,EAAMC,KACpCiB,GAAc,+CAEGjB,8DAC6C,IAAVA,EAAcd,KAAKU,YAAc,mBAC/EG,EAAKa,QAAQC,gDAKrB3B,KAAKC,IAAIC,MAAM8B,WAAaD,EAC5B/B,KAAKC,IAAIgC,cAAgBjC,KAAKG,GAAGG,IAAI,2CACrCN,KAAKC,IAAIgC,cAAcb,IAAI,QAASpB,KAAKkC,uBAAuBZ,KAAKtB,OAGvEqB,qBAAqBc,GACfnC,KAAKW,gBAAkBwB,EAAEC,OAAOC,QAEpCrC,KAAKW,cAAgBwB,EAAEC,OAAOC,MAC9BrC,KAAKsC,kBAGPJ,uBAAuBC,GACjBnC,KAAKW,gBAAkBwB,EAAEC,OAAOV,QAAQZ,QAE5Cd,KAAKW,cAAgBwB,EAAEC,OAAOV,QAAQZ,MACtCd,KAAKsC,kBAGPA,iBACEtC,KAAKC,IAAIgC,cAAcrB,QAAQ,CAACC,EAAMC,KACpCD,EAAKa,QAAQZ,QAAUd,KAAKW,cAAgBE,EAAK0B,UAAUC,IAAIxC,KAAKU,aAAeG,EAAK0B,UAAUE,OAAOzC,KAAKU,aAC9GV,KAAKC,IAAII,cAAcS,GAAOC,MAAMC,QAAU,SAGhDhB,KAAKC,IAAII,cAAcL,KAAKW,eAAeI,MAAMC,QAAU,QAG7DE,gBACE,MAAMwB,EAAY,IAAIC,gBAAgBC,OAAOC,SAASC,QAChDC,EAAWL,EAAUM,IAAI,aAAa,EACtCC,EAAYP,EAAUM,IAAI,aAC1BE,EAAYlD,KAAKC,IAAII,cAAc0C,GAOzC,GALIA,IACF/C,KAAKW,cAAgBoC,EACrB/C,KAAKsC,kBAGFW,EAAW,CACd,MAAME,EAAOD,EAAUE,cAAe,gBAAeH,OAC/CI,EAASF,EAAKA,EAAKG,UAAUJ,EAAUI,UACvCC,GAAMJ,aAAA,EAAAA,EAAMC,cAAc,mBAAkB,KAClDR,OAAOY,SAAS,CACdC,IAAKJ,EACLK,SAAU,WAGRH,GACFI,WAAW,KACTJ,EAAIK,SACH,YAEA,CACL,MAAMP,EAASH,EAAUI,UACzBV,OAAOY,SAAS,CACdC,IAAKJ,EACLK,SAAU,aAMH7D","file":"77.90f539.js","sourcesContent":["import { Component } from '@verndale/core';\nimport { isDevice } from '../helpers';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n $list: this.el._$('.leadership-landing-team-selector__list'),\n $teamElements: this.el._$$('.ue-leadership, .advisory-committees, .subscribers-advisory-board'),\n $dropdown: this.el.parentElement._$('#team-selector-dropdown')\n }\n\n this.buttonClass = 'leadership-landing-team-selector__item';\n this.activeClass = 'leadership-landing-team-selector__item--active';\n this.activeElement = 0;\n\n this.dom.$teamElements.forEach((item, index) => {\n if (index > 0) item.style.display = 'none';\n });\n\n this.populateList();\n this.linkToSection();\n }\n\n addListeners() {\n this.dom.$dropdown._on('change', this.handleDropdownChange.bind(this));\n }\n\n populateList() {\n // mobile (dropdown)\n this.dom.$dropdown.options.length = 0;\n\n this.dom.$teamElements.forEach((item, index) => {\n this.dom.$dropdown.options[index] = new Option(item.dataset.displayName, index, index === 0);\n });\n\n const event = new CustomEvent('update');\n this.dom.$dropdown.dispatchEvent(event);\n\n // desktop (list)\n let listItems = '';\n\n this.dom.$teamElements.forEach((item, index) => {\n listItems += `
  • \n \n ${item.dataset.displayName}\n \n
  • `;\n });\n\n this.dom.$list.innerHTML += listItems;\n this.dom.$listElements = this.el._$$('.leadership-landing-team-selector__item');\n this.dom.$listElements._on('click', this.handleListElementClick.bind(this));\n }\n\n handleDropdownChange(e) {\n if (this.activeElement === e.target.value) return;\n\n this.activeElement = e.target.value;\n this.showActiveTeam();\n }\n\n handleListElementClick(e) {\n if (this.activeElement === e.target.dataset.index) return;\n\n this.activeElement = e.target.dataset.index;\n this.showActiveTeam();\n }\n\n showActiveTeam() {\n this.dom.$listElements.forEach((item, index) => {\n item.dataset.index === this.activeElement ? item.classList.add(this.activeClass) : item.classList.remove(this.activeClass);\n this.dom.$teamElements[index].style.display = 'none';\n });\n\n this.dom.$teamElements[this.activeElement].style.display = 'block';\n }\n\n linkToSection() {\n const urlParams = new URLSearchParams(window.location.search);\n const tabIndex = urlParams.get('tabindex')||0;\n const dataIndex = urlParams.get('dataindex');\n const activeTab = this.dom.$teamElements[tabIndex];\n\n if (tabIndex) {\n this.activeElement = tabIndex;\n this.showActiveTeam();\n }\n\n if (dataIndex) {\n const data = activeTab.querySelector(`[data-index=\"${dataIndex}\"]`);\n const offset = data?data.offsetTop:activeTab.offsetTop;\n const btn = data?.querySelector('.btn--outline')||null;\n window.scrollTo({\n top: offset,\n behavior: 'smooth'\n });\n\n if (btn) {\n setTimeout(() => {\n btn.click();\n }, '1500');\n }\n } else {\n const offset = activeTab.offsetTop;\n window.scrollTo({\n top: offset,\n behavior: 'smooth'\n });\n }\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}