{"version":3,"file":"search-C3awCpTQ.js","sources":["../../../../../../HFC.Optimizely.FrontEnd/src/scripts/components/search.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport '../../scss/components/_search-field.scss';\n\nclass Search extends Component {\n setupDefaults() {\n this.dom = {\n triggers: this.el.querySelectorAll('.search-field__item-trigger'),\n input: this.el.querySelector('.base-input input') as HTMLInputElement\n };\n\n this.initSearchField();\n }\n\n addListeners() {\n (this.dom.triggers as NodeList).forEach(trigger =>\n trigger.addEventListener('click', this.handleClick.bind(this))\n );\n\n (this.dom.input as HTMLInputElement).addEventListener('keyup', this.handleKeyPress.bind(this));\n }\n\n initSearchField() {\n if (this.el.classList.contains('is-animated')) {\n this.setAriaExpanded('false');\n }\n }\n\n setAriaExpanded(state: string) {\n (this.dom.triggers as NodeListOf).forEach(trigger => {\n trigger.setAttribute('aria-expanded', state);\n });\n }\n\n handleClick(e: Event) {\n const trigger = e.currentTarget as HTMLButtonElement;\n const isAnimated = this.el.classList.contains('is-animated');\n\n if (trigger.classList.contains('search')) {\n if (isAnimated) {\n if (trigger.getAttribute('aria-expanded') === 'true') {\n this.triggerSearch();\n } else {\n this.expandSearchField();\n }\n } else {\n this.triggerSearch();\n }\n } else {\n this.closeItem();\n }\n }\n\n handleKeyPress(e: KeyboardEvent) {\n const input = this.el.querySelector('.base-input input') as HTMLInputElement;\n if (input.value.length > 2) {\n if (e.key === 'Enter') {\n this.triggerSearch();\n }\n }\n }\n\n expandSearchField() {\n this.setAriaExpanded('true');\n this.el.classList.add('is-expanded');\n }\n\n closeItem() {\n this.setAriaExpanded('false');\n this.el.classList.remove('is-expanded');\n }\n\n triggerSearch() {\n const input = this.el.querySelector('.base-input input') as HTMLInputElement;\n const url = this.el.dataset.searchUrl || 'search';\n\n if (input.value.length > 2) {\n location.href = `${location.origin}${url}${input.value}`;\n }\n }\n}\n\nexport default Search;\n"],"names":["Search","Component","trigger","state","isAnimated","input","url"],"mappings":"qCAGA,MAAMA,UAAeC,CAAU,CAC7B,eAAgB,CACd,KAAK,IAAM,CACT,SAAU,KAAK,GAAG,iBAAiB,6BAA6B,EAChE,MAAO,KAAK,GAAG,cAAc,mBAAmB,CAAA,EAGlD,KAAK,gBAAgB,CACvB,CAEA,cAAe,CACZ,KAAK,IAAI,SAAsB,QAAQC,GACtCA,EAAQ,iBAAiB,QAAS,KAAK,YAAY,KAAK,IAAI,CAAC,CAAA,EAG9D,KAAK,IAAI,MAA2B,iBAAiB,QAAS,KAAK,eAAe,KAAK,IAAI,CAAC,CAC/F,CAEA,iBAAkB,CACZ,KAAK,GAAG,UAAU,SAAS,aAAa,GAC1C,KAAK,gBAAgB,OAAO,CAEhC,CAEA,gBAAgBC,EAAe,CAC5B,KAAK,IAAI,SAA2C,QAAmBD,GAAA,CAC9DA,EAAA,aAAa,gBAAiBC,CAAK,CAAA,CAC5C,CACH,CAEA,YAAY,EAAU,CACpB,MAAMD,EAAU,EAAE,cACZE,EAAa,KAAK,GAAG,UAAU,SAAS,aAAa,EAEvDF,EAAQ,UAAU,SAAS,QAAQ,EACjCE,EACEF,EAAQ,aAAa,eAAe,IAAM,OAC5C,KAAK,cAAc,EAEnB,KAAK,kBAAkB,EAGzB,KAAK,cAAc,EAGrB,KAAK,UAAU,CAEnB,CAEA,eAAe,EAAkB,CACjB,KAAK,GAAG,cAAc,mBAAmB,EAC7C,MAAM,OAAS,GACnB,EAAE,MAAQ,SACZ,KAAK,cAAc,CAGzB,CAEA,mBAAoB,CAClB,KAAK,gBAAgB,MAAM,EACtB,KAAA,GAAG,UAAU,IAAI,aAAa,CACrC,CAEA,WAAY,CACV,KAAK,gBAAgB,OAAO,EACvB,KAAA,GAAG,UAAU,OAAO,aAAa,CACxC,CAEA,eAAgB,CACd,MAAMG,EAAQ,KAAK,GAAG,cAAc,mBAAmB,EACjDC,EAAM,KAAK,GAAG,QAAQ,WAAa,SAErCD,EAAM,MAAM,OAAS,IACd,SAAA,KAAO,GAAG,SAAS,MAAM,GAAGC,CAAG,GAAGD,EAAM,KAAK,GAE1D,CACF"}