{"version":3,"file":"chunks/98db2a765d22df.js","mappings":"+SAGqBA,EAAAA,WACnB,WAAYC,EAAeC,I,4FAAQ,SACjCC,KAAKF,cAAgBG,EAAEH,GACvBE,KAAKD,OAASA,EACdC,KAAKE,WAAaD,EAAE,eAAgBD,KAAKF,eACzCE,KAAKG,YAAcF,EAAE,gBAAiBD,KAAKF,eAC3CE,KAAKI,aAAeH,EAAE,iBAAkBD,KAAKF,eAC7CE,KAAKK,WAAaJ,EAAE,sCAAuCD,KAAKF,eAChEE,KAAKM,WAAaL,EAAE,eAAgBD,KAAKF,eACzCE,KAAKO,O,yCAGP,WACEP,KAAKQ,e,wBAGP,WAAa,WACHC,EAA2BT,KAAKD,OAAhCU,uBAGJC,OAAOC,SAASC,KAAKC,SAASb,KAAKD,OAAOe,iBAC5Cd,KAAKE,WAAWa,GAAG,UAAU,SAAAC,GAC3BA,EAAMC,iBAGN,IAAMC,EAAY,EAAKhB,WAAWiB,KAAKV,GACvCW,EAAAA,EAAAA,WAAoB,EAAKC,aAAaH,GAAY,CAAE,WAAc,EAAKf,YAAYmB,QACnF,EAAKC,0BAGPvB,KAAKI,aAAaW,GAAG,SAAS,SAAAC,GAC5BA,EAAMC,iBAEN,IAAMC,EAAY,EAAKd,aAAae,KAAKV,GACzCW,EAAAA,EAAAA,WAAoB,EAAKC,aAAaH,GAAY,CAAE,WAAc,EAAKf,YAAYmB,QACnF,EAAKC,2BAITvB,KAAKK,WAAWU,GAAG,SAAS,SAAAC,GAC1B,IAAME,EAAY,EAAKb,WAAWc,KAAKV,GACvCW,EAAAA,EAAAA,WAAoB,EAAKC,aAAaH,GAAY,CAAE,iBAAoBF,EAAMQ,OAAOC,eAGvFzB,KAAKM,WAAWS,GAAG,SAAS,WAC1B,IAAMG,EAAY,EAAKZ,WAAWa,KAAKV,GACvCW,EAAAA,EAAAA,WAAoB,EAAKC,aAAaH,S,kCAI1C,WACE,IAAMQ,EAAa1B,KAAK2B,WAAW3B,KAAKG,YAAYmB,OACpDZ,OAAOC,SAASC,KAAhB,UAA0BZ,KAAKD,OAAOe,cAAtC,iBAA4Dc,UAAUF,M,wBAGxE,SAAWG,GACT,OAAOC,OAAOD,GACXE,QAAQ,KAAM,SACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,U,0BAGnB,SAAab,GACX,MAAO,GAAP,OAAUlB,KAAKD,OAAOiC,OAAtB,YAAgCd,Q,sEAjEfrB","sources":["webpack:///./resources/js/components/showroom/template-search-bar.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport tracking from '../../utils/tracking';\n\nexport default class TemplateSearchBar {\n constructor(componentRoot, params) {\n this.componentRoot = $(componentRoot);\n this.params = params;\n this.searchForm = $('#search-form', this.componentRoot);\n this.searchInput = $('#search-input', this.componentRoot);\n this.submitSearch = $('#search-submit', this.componentRoot);\n this.categories = $(\".component--category-selector__link\", this.componentRoot);\n this.backButton = $(\".back-button\", this.componentRoot);\n this.init();\n }\n\n init() {\n this.bindEvents();\n }\n\n bindEvents() {\n const { analyticsDataAttribute } = this.params;\n\n // only bind event handlers if rendered outside of search page\n if(!window.location.href.includes(this.params.searchBaseUrl)) {\n this.searchForm.on('submit', event => {\n event.preventDefault();\n\n\n const eventName = this.searchForm.data(analyticsDataAttribute);\n tracking.trackEvent(this.getEventName(eventName), { \"searchTerm\": this.searchInput.val() });\n this.navigateToSearchPage();\n });\n\n this.submitSearch.on('click', event => {\n event.preventDefault();\n\n const eventName = this.submitSearch.data(analyticsDataAttribute);\n tracking.trackEvent(this.getEventName(eventName), { \"searchTerm\": this.searchInput.val() });\n this.navigateToSearchPage();\n });\n }\n\n this.categories.on('click', event => {\n const eventName = this.categories.data(analyticsDataAttribute);\n tracking.trackEvent(this.getEventName(eventName), { \"selectedCategory\": event.target.innerText });\n });\n\n this.backButton.on('click', () => {\n const eventName = this.backButton.data(analyticsDataAttribute);\n tracking.trackEvent(this.getEventName(eventName));\n });\n }\n\n navigateToSearchPage() {\n const searchTerm = this.htmlEscape(this.searchInput.val());\n window.location.href = `${this.params.searchBaseUrl}?term=${encodeURI(searchTerm)}`;\n }\n\n htmlEscape(str) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n getEventName(eventName) {\n return `${this.params.prefix}.${eventName}`\n }\n}\n"],"names":["TemplateSearchBar","componentRoot","params","this","$","searchForm","searchInput","submitSearch","categories","backButton","init","bindEvents","analyticsDataAttribute","window","location","href","includes","searchBaseUrl","on","event","preventDefault","eventName","data","tracking","getEventName","val","navigateToSearchPage","target","innerText","searchTerm","htmlEscape","encodeURI","str","String","replace","prefix"],"sourceRoot":""}