{"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":""}