{"version":3,"file":"articleListingGa.9dda14ffa20823219a02.js","mappings":"kKAEA,cAA6F,o7CAF7FA,OAAOC,UAAYD,OAAOC,WAAa,GAIvC,IAAMC,EAAW,CACfC,KAAMC,SAASC,cAAc,8BAC7BC,eAAgB,EAAIF,SAASG,iBAAiB,kCAC9CC,eAAgBJ,SAASC,cAAc,2BAoBzC,SAASI,EAAiBC,EAAIC,EAAUC,GAA2B,IAAfC,EAAQ,UAAH,+CACvD,EAAAC,EAAAA,iBAAe,GACbC,MAAe,GAAH,OAAMJ,EAAXE,EAAmB,gBAA6B,WACvDG,iBAAkB,GAAF,QAAK,EAAAC,EAAAA,0BAAyBP,GAAIQ,SACjC,WAAbP,GAAyB,CAAEQ,mBAAoBP,EAAWQ,QAElE,CA+CC,MAlCD,WAAgB,YACRT,EAAkC,QAA1B,EAAGT,EAASM,sBAAc,OAAS,QAAT,EAAvB,EAAyBa,eAAO,WAAT,EAAvB,EAAkCC,eAC7CC,EAA4C,QAA1B,EAAGrB,EAASM,sBAAc,OAAS,QAAT,EAAvB,EAAyBa,eAAO,WAAT,EAAvB,EAAkCG,eAE7D,GAAKtB,EAASM,gBAAmBG,GAAaT,EAASI,eAAemB,OAAtE,CAIA,IAAMb,EAAaV,EAASM,eAAeH,cAAc,sBAEzDH,EAASC,KAAKuB,iBAAiB,UAAU,SAAChB,GAAE,OAC1CD,EAAiBC,EAAGiB,OAAQhB,EAAUC,EAAW,IAEnDV,EAASC,KAAKuB,iBAAiB,SAAS,SAAChB,GAAE,OACzCD,EAAiBC,EAAGiB,OAAQhB,EAAUC,GAAY,EAAK,IAlD3D,SAA4BD,GAC1BT,EAASI,eAAesB,SAAQ,SAACC,GAChB,EAAIA,EAAQtB,iBAAiB,8CAErCqB,SAAQ,SAACE,GAAK,OACnBA,EAAMJ,iBAAiB,UAAU,WAC/BI,EAAMC,UACJ,EAAAjB,EAAAA,iBAAgB,CACdC,MAAO,GAAF,OAAKJ,EAAQ,kBAClBqB,YAAaF,EAAMG,KACnBC,aAAcJ,EAAMV,OAE1B,GAAE,GAEN,GACF,CAsCEe,CAAmBxB,GAEnB,IAAMyB,EAAY,EAAIlC,EAASM,eAAeD,iBAAiB,qBAE/D6B,EAAUX,QACRW,EAAUR,SAAQ,SAACS,GAAQ,OACzBA,EAASX,iBAAiB,SAAS,SAACY,GAAC,OAlC3C,SAAyBD,EAAU1B,EAAU2B,GAC3C,IAAMC,EAAeD,EAAEX,OAAOa,QAAQ,eAAenC,cAAc,2BAEnE,EAAAS,EAAAA,iBAAe,GACbC,MAAO,GAAF,OAAKJ,EAAQ,kBAClB8B,UAAWJ,EAASK,YAAYxB,OAChCyB,SAAUN,EAASO,KAAKC,MAAM,KAAK,IAClB,WAAblC,GAAyB4B,GAAgB,CAAEO,YAAaP,EAAaG,cAE7E,CAyBgDK,CAAgBV,EAAU1B,EAAU2B,EAAE,GAAC,IAGrFU,YAAW,YACT,EAAAlC,EAAAA,iBAAe,GACbC,MAAO,GAAF,OAAKJ,EAAQ,cAClBsC,wBAAyB1B,EACzBP,iBAAkB,GAAF,QAAK,EAAAC,EAAAA,0BAAyBf,EAASC,MAAMe,SAC5C,WAAbP,GAAyB,CAAEQ,mBAAoBP,EAAWQ,QAElE,GAAG,IA3BH,CA4BF,EAEmB,W","sources":["webpack://jcb.com/./src/templates/02-components/article-listing/analytics.article-listing.js"],"sourcesContent":["window.dataLayer = window.dataLayer || [];\r\n\r\nimport { pushToDataLayer, determineSelectedFilters } from '@/js/analytics/analytics.methods';\r\n\r\nconst elements = {\r\n form: document.querySelector('.js-article-filter-form-ga'),\r\n filterSections: [...document.querySelectorAll('.js-article-filter-section-ga')],\r\n articleListing: document.querySelector('.js-article-listing-ga'),\r\n};\r\n\r\nfunction handleFilterChange(gaPrefix) {\r\n elements.filterSections.forEach((section) => {\r\n const inputs = [...section.querySelectorAll('.js-checkbox-input-ga, .js-radio-input-ga')];\r\n\r\n inputs.forEach((input) =>\r\n input.addEventListener('change', () => {\r\n input.checked &&\r\n pushToDataLayer({\r\n event: `${gaPrefix}_select_filter`,\r\n filter_name: input.name,\r\n filter_value: input.value,\r\n });\r\n }),\r\n );\r\n });\r\n}\r\n\r\nfunction handleFormSubmit(el, gaPrefix, searchTerm, reset = false) {\r\n pushToDataLayer({\r\n event: reset ? `${gaPrefix}_reset_filter` : `${gaPrefix}_filter`,\r\n selected_filters: `${determineSelectedFilters(el).trim()}`,\r\n ...(gaPrefix === 'search' && { search_search_term: searchTerm.value }),\r\n });\r\n}\r\n\r\nfunction handleCardClick(cardLink, gaPrefix, e) {\r\n const cardCategory = e.target.closest('.js-card-ga').querySelector('.js-search-result-type');\r\n\r\n pushToDataLayer({\r\n event: `${gaPrefix}_listing_click`,\r\n link_text: cardLink.textContent.trim(),\r\n link_url: cardLink.href.split('?')[0],\r\n ...(gaPrefix === 'search' && cardCategory && { result_type: cardCategory.textContent }),\r\n });\r\n}\r\n\r\nfunction init() {\r\n const gaPrefix = elements.articleListing?.dataset?.gaFilterPrefix;\r\n const totalResultsNumber = elements.articleListing?.dataset?.gaTotalResults;\r\n\r\n if (!elements.articleListing || !gaPrefix || !elements.filterSections.length) {\r\n return;\r\n }\r\n\r\n const searchTerm = elements.articleListing.querySelector('.js-search-term-ga');\r\n\r\n elements.form.addEventListener('submit', (el) =>\r\n handleFormSubmit(el.target, gaPrefix, searchTerm),\r\n );\r\n elements.form.addEventListener('reset', (el) =>\r\n handleFormSubmit(el.target, gaPrefix, searchTerm, true),\r\n );\r\n\r\n handleFilterChange(gaPrefix);\r\n\r\n const cardLinks = [...elements.articleListing.querySelectorAll('.js-card-link-ga')];\r\n\r\n cardLinks.length &&\r\n cardLinks.forEach((cardLink) =>\r\n cardLink.addEventListener('click', (e) => handleCardClick(cardLink, gaPrefix, e)),\r\n );\r\n\r\n setTimeout(() => {\r\n pushToDataLayer({\r\n event: `${gaPrefix}_load_list`,\r\n number_returned_results: totalResultsNumber,\r\n selected_filters: `${determineSelectedFilters(elements.form).trim()}`,\r\n ...(gaPrefix === 'search' && { search_search_term: searchTerm.value }),\r\n });\r\n }, 100);\r\n}\r\n\r\nexport default init;\r\n"],"names":["window","dataLayer","elements","form","document","querySelector","filterSections","querySelectorAll","articleListing","handleFormSubmit","el","gaPrefix","searchTerm","reset","pushToDataLayer","event","selected_filters","determineSelectedFilters","trim","search_search_term","value","dataset","gaFilterPrefix","totalResultsNumber","gaTotalResults","length","addEventListener","target","forEach","section","input","checked","filter_name","name","filter_value","handleFilterChange","cardLinks","cardLink","e","cardCategory","closest","link_text","textContent","link_url","href","split","result_type","handleCardClick","setTimeout","number_returned_results"],"sourceRoot":""}