{"version":3,"file":"chunks/2888c19aa3a51c.js","mappings":"wyBAC4C,IAEvBA,EAAiB,WASpC,SAAAA,EAAYC,EAA4BC,I,4FAAaC,CAAA,KAAAH,GACnDI,KAAKH,cAAgBI,EAAEJ,GACvBG,KAAKF,OAASA,EACdE,KAAKE,WAAaD,EAAE,eAAgBD,KAAKH,eACzCG,KAAKG,YAAcF,EAAE,gBAAiBD,KAAKH,eAC3CG,KAAKI,aAAeH,EAAE,iBAAkBD,KAAKH,eAC7CG,KAAKK,WAAaJ,EAAE,sCAAuCD,KAAKH,eAChEG,KAAKM,WAAaL,EAAE,eAAgBD,KAAKH,eACzCG,KAAKO,MACP,C,QAwDC,O,EAxDAX,G,EAAA,EAAAY,IAAA,OAAAC,MAED,WACET,KAAKU,YACP,GAAC,CAAAF,IAAA,aAAAC,MAED,WAAa,IAAAE,EAAA,KACHC,EAA2BZ,KAAKF,OAAhCc,uBAGJC,OAAOC,SAASC,KAAKC,SAAShB,KAAKF,OAAOmB,iBAC5CjB,KAAKE,WAAWgB,GAAG,UAAU,SAAAC,GAC3BA,EAAMC,iBAGN,IAAMC,EAAYV,EAAKT,WAAWoB,KAAKV,GACvCW,EAAAA,EAAAA,WAAoBZ,EAAKa,aAAaH,GAAY,CAAE,WAAcV,EAAKR,YAAYsB,QACnFd,EAAKe,sBACP,IAEA1B,KAAKI,aAAac,GAAG,SAAS,SAAAC,GAC5BA,EAAMC,iBAEN,IAAMC,EAAYV,EAAKP,aAAakB,KAAKV,GACzCW,EAAAA,EAAAA,WAAoBZ,EAAKa,aAAaH,GAAY,CAAE,WAAcV,EAAKR,YAAYsB,QACnFd,EAAKe,sBACP,KAGF1B,KAAKK,WAAWa,GAAG,SAAS,SAAAC,GAC1B,IAAME,EAAYV,EAAKN,WAAWiB,KAAKV,GACvCW,EAAAA,EAAAA,WAAoBZ,EAAKa,aAAaH,GAAY,CAAE,iBAAoBF,EAAMQ,OAAOC,WACvF,IAEA5B,KAAKM,WAAWY,GAAG,SAAS,WAC1B,IAAMG,EAAYV,EAAKL,WAAWgB,KAAKV,GACvCW,EAAAA,EAAAA,WAAoBZ,EAAKa,aAAaH,GACxC,GACF,GAAC,CAAAb,IAAA,uBAAAC,MAED,WACE,IAAMoB,EAAa7B,KAAK8B,WAAW9B,KAAKG,YAAYsB,OACpDZ,OAAOC,SAASC,KAAO,GAAHgB,OAAM/B,KAAKF,OAAOmB,cAAa,UAAAc,OAASC,UAAUH,GACxE,GAAC,CAAArB,IAAA,aAAAC,MAED,SAAWwB,GACT,OAAOC,OAAOD,GACXE,QAAQ,KAAM,SACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,OACnB,GAAC,CAAA3B,IAAA,eAAAC,MAED,SAAaY,GACX,MAAO,GAAPU,OAAU/B,KAAKF,OAAOsC,OAAM,KAAAL,OAAIV,EAClC,M,oEAACzB,CAAA,CA1EmC,E","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 componentRoot: JQuery;\n params: any;\n searchForm: JQuery;\n searchInput: JQuery;\n submitSearch: JQuery;\n categories: JQuery;\n backButton: JQuery;\n\n constructor(componentRoot: HTMLElement, params: any) {\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) as unknown as string;\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) as unknown as string;\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) as unknown as string;\n tracking.trackEvent(this.getEventName(eventName), { \"selectedCategory\": event.target.innerText });\n });\n\n this.backButton.on('click', () => {\n const eventName = this.backButton.data(analyticsDataAttribute) as unknown as string;\n tracking.trackEvent(this.getEventName(eventName));\n });\n }\n\n navigateToSearchPage() {\n const searchTerm = this.htmlEscape(this.searchInput.val() as string);\n window.location.href = `${this.params.searchBaseUrl}?term=${encodeURI(searchTerm)}`;\n }\n\n htmlEscape(str: string) {\n return String(str)\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n getEventName(eventName: string) {\n return `${this.params.prefix}.${eventName}`\n }\n}\n"],"names":["TemplateSearchBar","componentRoot","params","_classCallCheck","this","$","searchForm","searchInput","submitSearch","categories","backButton","init","key","value","bindEvents","_this","analyticsDataAttribute","window","location","href","includes","searchBaseUrl","on","event","preventDefault","eventName","data","tracking","getEventName","val","navigateToSearchPage","target","innerText","searchTerm","htmlEscape","concat","encodeURI","str","String","replace","prefix"],"sourceRoot":""}