{"version":3,"file":"search-RPThMzEX.js","sources":["../../../app/javascript/entrypoints/js/search.js"],"sourcesContent":["import gsap from \"gsap\";\n\nexport default class Search {\n constructor() {\n this.isOpen = false;\n this.searchInput = document.querySelector(\n \"[data-js='header-search'] input\",\n );\n this.searchButtonMobile = document.querySelector(\n \"[data-js='header-search-mobile']\",\n );\n this.searchModal = document.querySelector(\"[data-js='search-modal']\");\n this.searchIconOpen = document.querySelector(\n \"[data-js='header-search-mobile__open']\",\n );\n this.searchIconClose = document.querySelector(\n \"[data-js='header-search-mobile__close']\",\n );\n this.content = document.querySelector(\"[data-js='search-modal__content']\");\n this.shadow = document.querySelector(\"[data-js='search-modal__shadow']\");\n }\n\n init() {\n this.searchInput.addEventListener(\"focus\", this.openSearch.bind(this));\n this.searchButtonMobile.addEventListener(\n \"click\",\n this.toggleSearch.bind(this),\n );\n\n this.shadow.addEventListener(\"click\", this.closeSearch.bind(this));\n this.content.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n });\n }\n\n toggleSearch() {\n this.isOpen ? this.closeSearch() : this.openSearch();\n }\n\n openSearch() {\n this.isOpen = true;\n this.searchInput.focus();\n\n this.searchIconOpen.style.display = \"none\";\n this.searchIconClose.style.display = \"block\";\n\n const tl = gsap.timeline();\n\n tl.set(this.searchModal, {\n display: \"block\",\n opacity: 0,\n });\n\n tl.to(this.searchModal, {\n opacity: 1,\n autoAlpha: 1,\n });\n }\n\n closeSearch() {\n this.isOpen = false;\n\n this.searchIconOpen.style.display = \"block\";\n this.searchIconClose.style.display = \"none\";\n\n const tl = gsap.timeline();\n\n tl.to(this.searchModal, {\n autoAlpha: 0,\n onComplete: () => {\n this.searchModal.style.display = \"none\";\n },\n });\n }\n closeOnOutsideClick(event) {\n if (\n this.isOpen &&\n !event.target.closest(\"[data-js='header-search'] input\") &&\n !event.target.closest(\"[data-js='header-search-mobile']\") &&\n !event.target.closest(\"[data-js='search-modal']\")\n ) {\n this.closeSearch();\n }\n }\n}\n"],"names":["Search","event","tl","gsap"],"mappings":"wCAEe,MAAMA,CAAO,CAC1B,aAAc,CACZ,KAAK,OAAS,GACd,KAAK,YAAc,SAAS,cAC1B,iCACN,EACI,KAAK,mBAAqB,SAAS,cACjC,kCACN,EACI,KAAK,YAAc,SAAS,cAAc,0BAA0B,EACpE,KAAK,eAAiB,SAAS,cAC7B,wCACN,EACI,KAAK,gBAAkB,SAAS,cAC9B,yCACN,EACI,KAAK,QAAU,SAAS,cAAc,mCAAmC,EACzE,KAAK,OAAS,SAAS,cAAc,kCAAkC,CACxE,CAED,MAAO,CACL,KAAK,YAAY,iBAAiB,QAAS,KAAK,WAAW,KAAK,IAAI,CAAC,EACrE,KAAK,mBAAmB,iBACtB,QACA,KAAK,aAAa,KAAK,IAAI,CACjC,EAEI,KAAK,OAAO,iBAAiB,QAAS,KAAK,YAAY,KAAK,IAAI,CAAC,EACjE,KAAK,QAAQ,iBAAiB,QAAUC,GAAU,CAChDA,EAAM,gBAAe,CAC3B,CAAK,CACF,CAED,cAAe,CACb,KAAK,OAAS,KAAK,YAAW,EAAK,KAAK,YACzC,CAED,YAAa,CACX,KAAK,OAAS,GACd,KAAK,YAAY,QAEjB,KAAK,eAAe,MAAM,QAAU,OACpC,KAAK,gBAAgB,MAAM,QAAU,QAErC,MAAMC,EAAKC,EAAK,WAEhBD,EAAG,IAAI,KAAK,YAAa,CACvB,QAAS,QACT,QAAS,CACf,CAAK,EAEDA,EAAG,GAAG,KAAK,YAAa,CACtB,QAAS,EACT,UAAW,CACjB,CAAK,CACF,CAED,aAAc,CACZ,KAAK,OAAS,GAEd,KAAK,eAAe,MAAM,QAAU,QACpC,KAAK,gBAAgB,MAAM,QAAU,OAE1BC,EAAK,WAEb,GAAG,KAAK,YAAa,CACtB,UAAW,EACX,WAAY,IAAM,CAChB,KAAK,YAAY,MAAM,QAAU,MAClC,CACP,CAAK,CACF,CACD,oBAAoBF,EAAO,CAEvB,KAAK,QACL,CAACA,EAAM,OAAO,QAAQ,iCAAiC,GACvD,CAACA,EAAM,OAAO,QAAQ,kCAAkC,GACxD,CAACA,EAAM,OAAO,QAAQ,0BAA0B,GAEhD,KAAK,YAAW,CAEnB,CACH"}