{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/Navigation.js"],"names":[],"mappings":"kJAEA,eAAyB,KAAU,CACjC,eAAgB,CACd,KAAK,IAAM,CACT,aAAc,KAAK,GAAG,cAAc,mCACpC,KAAM,KAAK,GAAG,cAAc,mCAC5B,QAAS,KAAK,GAAG,cAAc,sCAC/B,WAAY,KAAK,GAAG,cAAc,oCAClC,uBAAwB,KAAK,GAAG,cAC9B,qCAEF,qBAAsB,KAAK,GAAG,cAAc,kBAC5C,cAAe,SAAS,cAAc,mBACtC,cAAe,KAAK,GAAG,iBAAiB,mBACxC,kBAAmB,KAAK,GAAG,cAAc,eAG3C,KAAK,KAAO,SAAS,gBAGvB,cAAe,CACb,KAAK,IAAI,aAAa,iBAAiB,QAAS,KAAK,WAAW,KAAK,OACrE,KAAK,IAAI,WAAW,iBAAiB,QAAS,KAAK,WAAW,KAAK,OACnE,KAAK,IAAI,uBAAuB,iBAC9B,QACA,KAAK,eAAe,KAAK,OAE3B,KAAK,IAAI,cAAc,QAAQ,GAAQ,CACrC,EAAK,iBAAiB,QAAS,KAAK,eAAe,KAAK,SAG1D,OAAO,iBAAiB,OAAQ,IAAM,KAAK,KAAK,UAAU,IAAI,cAGhE,eAAe,EAAG,CAChB,EAAE,iBACF,KAAM,CAAE,QAAS,EAAE,OAAO,QAE1B,GAAI,GAAQ,KAAK,IAAI,kBAAmB,CACtC,KAAM,GAAM,OAAO,SAAS,KACtB,CAAE,YAAa,KAAK,IAAI,kBAAkB,QAC1C,EAAgB,KAAK,MAAM,GAC3B,EAAW,EAAI,MAAM,KACrB,EAAgB,EAAS,UAC7B,GAAQ,EAAc,UAAU,SAAS,IAAS,GAGpD,GAAG,IAAkB,IAAM,EAAS,KAAmB,EAAM,OAE7D,EAAS,OAAO,EAAe,EAAG,GAClC,KAAM,GAAS,EAAS,KAAK,KAE7B,OAAO,SAAS,KAAO,MAEvB,QAAO,SAAS,KAAO,EAAE,OAAO,KAIpC,MAAO,CACL,KAAK,IAAI,aAAa,UAAU,IAAI,WACpC,KAAK,IAAI,KAAK,UAAU,OAAO,sBAC/B,KAAK,KAAK,UAAU,IAAI,sBACxB,KAAK,KAAK,UAAU,IAAI,sBACpB,KAAK,IAAI,eACX,KAAK,IAAI,cAAc,UAAU,IAAI,mBAGzC,OAAQ,CACN,KAAK,IAAI,aAAa,UAAU,OAAO,WACvC,KAAK,IAAI,KAAK,UAAU,IAAI,sBAC5B,KAAK,KAAK,UAAU,OAAO,sBAC3B,KAAK,KAAK,UAAU,OAAO,sBACvB,KAAK,IAAI,eACX,KAAK,IAAI,cAAc,UAAU,OAAO,mBAG5C,YAAa,CACX,KAAS,IAAI,aAAa,UAAU,SAAS,WAC3C,KAAK,QAEL,KAAK,OAIT,gBAAiB,CACf,KAAS,IAAI,qBAAqB,OAChC,MAAK,IAAI,qBAAqB,gBAAgB,UAC9C,KAAK,IAAI,uBAAuB,aAAe,IAE/C,MAAK,IAAI,qBAAqB,aAAa,SAAU,QACrD,KAAK,IAAI,uBAAuB,aAAe,KAKrD,UAAe","file":"scripts/649.bundle.js","sourcesContent":["import { Component } from '@verndale/core';\n\nclass Navigation extends Component {\n setupDefaults() {\n this.dom = {\n toggleButton: this.el.querySelector('[data-module-navigation=\"open\"]'),\n menu: this.el.querySelector('[data-module-navigation=\"menu\"]'),\n content: this.el.querySelector('[data-module-navigation=\"content\"]'),\n searchLink: this.el.querySelector('[data-module-navigation=\"close\"]'),\n languageDropdownButton: this.el.querySelector(\n '[data-toggle=\"language-dropdown\"]'\n ),\n languageDropdownList: this.el.querySelector('.dropdown-pane'),\n pageContainer: document.querySelector('.page-container'),\n langListItems: this.el.querySelectorAll('.lang-list li a'),\n langAvailableList: this.el.querySelector('.lang-list')\n };\n\n this.html = document.documentElement;\n }\n\n addListeners() {\n this.dom.toggleButton.addEventListener('click', this.toggleMenu.bind(this));\n this.dom.searchLink.addEventListener('click', this.toggleMenu.bind(this));\n this.dom.languageDropdownButton.addEventListener(\n 'click',\n this.toggleDropdown.bind(this)\n );\n this.dom.langListItems.forEach(item => {\n item.addEventListener('click', this.handleLanguage.bind(this));\n });\n\n window.addEventListener('load', () => this.html.classList.add('js-loaded'));\n }\n\n handleLanguage(e) {\n e.preventDefault();\n const { lang } = e.target.dataset;\n\n if (lang && this.dom.langAvailableList) {\n const url = window.location.href;\n const { langList } = this.dom.langAvailableList.dataset;\n const langListArray = JSON.parse(langList);\n const urlArray = url.split('/');\n const languageIndex = urlArray.findIndex(\n item => langListArray.languages.includes(item) && item\n );\n \n if(languageIndex === -1 || urlArray[languageIndex] === lang) return;\n \n urlArray.splice(languageIndex, 1, lang);\n const newUrl = urlArray.join('/');\n\n window.location.href = newUrl;\n } else {\n window.location.href = e.target.href;\n }\n }\n\n open() {\n this.dom.toggleButton.classList.add('js-open');\n this.dom.menu.classList.remove('js-overflow-hidden');\n this.html.classList.add('js-show-navigation');\n this.html.classList.add('js-overflow-hidden');\n if (this.dom.pageContainer)\n this.dom.pageContainer.classList.add('visually-hidden');\n }\n\n close() {\n this.dom.toggleButton.classList.remove('js-open');\n this.dom.menu.classList.add('js-overflow-hidden');\n this.html.classList.remove('js-show-navigation');\n this.html.classList.remove('js-overflow-hidden');\n if (this.dom.pageContainer)\n this.dom.pageContainer.classList.remove('visually-hidden');\n }\n\n toggleMenu() {\n if (this.dom.toggleButton.classList.contains('js-open')) {\n this.close();\n } else {\n this.open();\n }\n }\n\n toggleDropdown() {\n if (this.dom.languageDropdownList.hidden) {\n this.dom.languageDropdownList.removeAttribute('hidden');\n this.dom.languageDropdownButton.ariaExpanded = true;\n } else {\n this.dom.languageDropdownList.setAttribute('hidden', 'true');\n this.dom.languageDropdownButton.ariaExpanded = false;\n }\n }\n}\n\nexport default Navigation;\n"],"sourceRoot":""}