{"version":3,"sources":["webpack:///./src/js/modules/header.js"],"names":["Module","this","dom","$el","el","$hamburger","_$","$panel","$search","$searchTrigger","$searchForm","$searchField","expamdedClass","searchOpenedClass","_on","toggle","bind","toggleSearch","closeSearch","closeSearchOnEsc","validateBeforeSubmit","clickOutside","onClickOutside","classList","remove","add","focus","contains","openSearch","e","which","value","preventDefault","Component"],"mappings":"i/CAGMA,E,iXAEFC,KAAKC,IAAM,CACTC,IAAKF,KAAKG,GACVC,WAAYJ,KAAKG,GAAGE,GAAG,qBACvBC,OAAQN,KAAKG,GAAGE,GAAG,iBACnBE,QAASP,KAAKG,GAAGE,GAAG,kBACpBG,eAAgBR,KAAKG,GAAGE,GAAG,2BAC3BI,YAAaT,KAAKG,GAAGE,GAAG,wBACxBK,aAAcV,KAAKG,GAAGE,GAAG,0BAG3BL,KAAKW,cAAgB,mBACrBX,KAAKY,kBAAoB,0B,qCAIzBZ,KAAKC,IAAIG,WAAWS,IAAI,QAASb,KAAKc,OAAOC,KAAKf,OAClDA,KAAKC,IAAIO,eAAeK,IAAI,QAASb,KAAKgB,aAAaD,KAAKf,OAC5DA,KAAKC,IAAIQ,YAAYI,IAAI,QAASb,KAAKiB,YAAYF,KAAKf,OACxDA,KAAKC,IAAIS,aAAaG,IAAI,UAAWb,KAAKkB,iBAAiBH,KAAKf,OAChEA,KAAKC,IAAIQ,YAAYI,IAAI,SAAUb,KAAKmB,qBAAqBJ,KAAKf,OAClEoB,IAAapB,KAAKC,IAAIC,IAAKF,KAAKqB,eAAeN,KAAKf,OACpDoB,IAAapB,KAAKC,IAAIM,QAASP,KAAKiB,YAAYF,KAAKf,S,+BAIrDA,KAAKC,IAAIC,IAAIoB,UAAUR,OAAOd,KAAKW,iB,uCAInCX,KAAKC,IAAIC,IAAIoB,UAAUC,OAAOvB,KAAKW,iB,mCAInCX,KAAKC,IAAIM,QAAQe,UAAUE,IAAIxB,KAAKY,mBACpCZ,KAAKC,IAAIS,aAAae,U,oCAItBzB,KAAKC,IAAIM,QAAQe,UAAUC,OAAOvB,KAAKY,qB,qCAInCZ,KAAKC,IAAIM,QAAQe,UAAUI,SAAS1B,KAAKY,mBAC3CZ,KAAKiB,cAELjB,KAAK2B,e,uCAIQC,GACC,KAAZA,EAAEC,OAAc7B,KAAKiB,gB,2CAGNW,GACd5B,KAAKC,IAAIS,aAAaoB,OACzBF,EAAEG,sB,8BAzDaC,aA8DNjC","file":"18.b414f3.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport clickOutside from 'click-outside';\r\n\r\nclass Module extends Component {\r\n setupDefaults() {\r\n this.dom = {\r\n $el: this.el,\r\n $hamburger: this.el._$('.heaer__hamburger'),\r\n $panel: this.el._$('.heaer__panel'),\r\n $search: this.el._$('.header-search'),\r\n $searchTrigger: this.el._$('.header-search__trigger'),\r\n $searchForm: this.el._$('.header-search__form'),\r\n $searchField: this.el._$('.header-search__field')\r\n };\r\n\r\n this.expamdedClass = 'header--expanded';\r\n this.searchOpenedClass = 'header-search--opened';\r\n }\r\n\r\n addListeners() {\r\n this.dom.$hamburger._on('click', this.toggle.bind(this));\r\n this.dom.$searchTrigger._on('click', this.toggleSearch.bind(this));\r\n this.dom.$searchForm._on('reset', this.closeSearch.bind(this));\r\n this.dom.$searchField._on('keydown', this.closeSearchOnEsc.bind(this));\r\n this.dom.$searchForm._on('submit', this.validateBeforeSubmit.bind(this));\r\n clickOutside(this.dom.$el, this.onClickOutside.bind(this));\r\n clickOutside(this.dom.$search, this.closeSearch.bind(this));\r\n }\r\n\r\n toggle() {\r\n this.dom.$el.classList.toggle(this.expamdedClass);\r\n }\r\n\r\n onClickOutside() {\r\n this.dom.$el.classList.remove(this.expamdedClass);\r\n }\r\n\r\n openSearch() {\r\n this.dom.$search.classList.add(this.searchOpenedClass);\r\n this.dom.$searchField.focus();\r\n }\r\n\r\n closeSearch() {\r\n this.dom.$search.classList.remove(this.searchOpenedClass);\r\n }\r\n\r\n toggleSearch() {\r\n if (this.dom.$search.classList.contains(this.searchOpenedClass)) {\r\n this.closeSearch();\r\n } else {\r\n this.openSearch();\r\n }\r\n }\r\n\r\n closeSearchOnEsc(e) {\r\n if (e.which === 27) this.closeSearch()\r\n }\r\n\r\n validateBeforeSubmit(e) {\r\n if (!this.dom.$searchField.value) {\r\n e.preventDefault();\r\n }\r\n }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}