{"version":3,"sources":["../../../../dev/j/v3/components/target-ab-download-ids.js"],"names":["targetABTestDownloadIDs","parameters","init","params","run","secondTry","window","ttMETA","CampaignId","testDownloadID","RecipeName","buttons","forEach","button","removeEventListener","setButton","checkConsent","buttonsArray","getAttribute","toLowerCase","avastGlobals","detect","os","isAndroid","isIOS","url","URL","href","searchParams","set","search","toString","tempID","tempHref","push","el","defaultID","replace","defaultHref","testID","testHref","btnArray","OnetrustActiveGroups","includes","buttonObj","setAttribute","document","querySelectorAll","query","addEventListener","event","detail","element","error","sdl","console","system","type","name","message"],"mappings":"AAIA,GAAIA,yBAA0BA,yBAA4B,WACzD,YAEA,IAAIC,KAEJ,QACCC,KAAM,SAASC,GAEdF,EAAaE,GAEdC,IAAK,WAkBH,QAASC,KACJC,OAAOC,QAA0C,KAAhCD,OAAOC,OAAO,GAAGC,aACrCC,EAAiB,IAAMH,OAAOC,OAAO,GAAGC,WAAa,IAAMF,OAAOC,OAAO,GAAGG,WAE5EC,EAAQC,QAAQ,SAASC,GACxBA,EAAOC,oBAAoB,YAAa,WACvCT,MAEDU,EAAUF,KAGXG,EAAaC,IAKf,QAASF,GAAUF,GAElB,KAAMA,EAAOK,aAAa,kBAAoBL,EAAOK,aAAa,kBAA2E,iBAAvDL,EAAOK,aAAa,iBAAiBC,iBAAsCC,aAAaC,OAAOC,GAAGC,YAAcH,aAAaC,OAAOC,GAAGE,MAAO,CACnO,GAAIC,GAAM,GAAIC,KAAIb,EAAOc,MACxBxB,EAASsB,EAAMA,EAAIG,aAAe,IAEnCzB,GAAO0B,IAAI,SAAU,GACrBJ,EAAIK,OAAS3B,EAAO4B,WACpBlB,EAAOc,KAAOF,EAAIM,WAGnB,GAAIC,GAASnB,EAAOK,aAAa,sBAChCe,EAAWpB,EAAOK,aAAa,OAEhCD,GAAaiB,MACZC,GAAMtB,EACNuB,WAAgD,IAAnCJ,EAAOF,OAAOrB,GAAyBuB,EAASA,EAAOK,QAAQ5B,EAAgB,IAC5F6B,aAAoD,IAArCL,EAASH,OAAOrB,GAAyBwB,EAAWA,EAASI,QAAQ5B,EAAgB,IACpG8B,QAA6C,IAAnCP,EAAOF,OAAOrB,GAAyBuB,EAASvB,EAAiBuB,EAC3EQ,UAAiD,IAArCP,EAASH,OAAOrB,GAAyBwB,EAASI,QAAQL,EAAQA,EAASvB,GAAkBwB,IAK3G,QAASjB,GAAayB,GAEjBnC,OAAOoC,sBAAwBpC,OAAOoC,qBAAqBC,SAAS,SACvEF,EAAS7B,QAAQ,SAASgC,GACzBA,EAAUT,GAAGU,aAAa,OAAQD,EAAUJ,UAC5CI,EAAUT,GAAGU,aAAa,wBAAyBD,EAAUL,QAC7DK,EAAUT,GAAGU,aAAa,qBAAsBD,EAAUL,UAG3DE,EAAS7B,QAAQ,SAASgC,GACzBA,EAAUT,GAAGU,aAAa,OAAQD,EAAUN,aAC5CM,EAAUT,GAAGU,aAAa,wBAAyBD,EAAUR,WAC7DQ,EAAUT,GAAGU,aAAa,qBAAsBD,EAAUR,aArE9D,IACC,GAAI3B,GAAiBH,OAAOC,QAA0C,KAAhCD,OAAOC,OAAO,GAAGC,WAAoB,IAAKF,OAAOC,OAAO,GAAGC,WAAa,IAAMF,OAAOC,OAAO,GAAGG,WAAa,GACjJC,EAAUmC,SAASC,iBAAiB9C,EAAW+C,OAC/C/B,IAGDN,GAAQC,QAAQ,SAASC,GACpBP,OAAOC,QAA0C,KAAhCD,OAAOC,OAAO,GAAGC,WACrCO,EAAUF,GAEVA,EAAOoC,iBAAiB,YAAa,WACpC5C,QAgEHW,EAAaC,GAGbX,OAAO2C,iBAAiB,wBAAyB,WAAYjC,EAAaC,KAG1EX,OAAO2C,iBAAiB,mBAAoB,SAASC,GACpDA,EAAMC,OAAOC,QAAQL,iBAAiB9C,EAAW+C,OAAOpC,QAAQ,SAASC,GACxEE,EAAUF,GACVG,EAAaC,OAKd,MAAOoC,GAEW,mBAARC,OACVC,QAAQF,MAAMA,GACdC,IAAIpB,MACHsB,QACCH,OACCI,KAAMJ,EAAMK,KACZC,QAASN,EAAMM,UAGjBT,MAAO","file":"target-ab-download-ids.js","sourcesContent":["/*\n\tDownload IDs switch for Adobe Target Client Side test\n*/\n\nvar targetABTestDownloadIDs = targetABTestDownloadIDs || (function(){\n\t'use strict';\n\n\tvar parameters = {};\n\n\treturn {\n\t\tinit: function(params) {\n\t\t\t// default data-role=\"download-link\"\n\t\t\tparameters = params;\n\t\t},\n\t\trun: function() {\n\t\t\ttry {\n\t\t\t\tvar testDownloadID = window.ttMETA && window.ttMETA[0].CampaignId !== '' ? '-' +window.ttMETA[0].CampaignId + '-' + window.ttMETA[0].RecipeName : '',\n\t\t\t\t\tbuttons = document.querySelectorAll(parameters.query),\n\t\t\t\t\tbuttonsArray = [];\n\n\t\t\t\t// array of buttons object\n\t\t\t\tbuttons.forEach(function(button) {\n\t\t\t\t\tif (window.ttMETA && window.ttMETA[0].CampaignId !== '' ) {\n\t\t\t\t\t\tsetButton(button);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbutton.addEventListener('mouseover', function() {\n\t\t\t\t\t\t\tsecondTry()\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t// another try to look for ttMETA if it is not ready while init \n\t\t\t\tfunction secondTry() {\n\t\t\t\t\tif (window.ttMETA && window.ttMETA[0].CampaignId !== '' ) {\n\t\t\t\t\t\ttestDownloadID = '-' + window.ttMETA[0].CampaignId + '-' + window.ttMETA[0].RecipeName;\n\n\t\t\t\t\t\tbuttons.forEach(function(button) {\n\t\t\t\t\t\t\tbutton.removeEventListener('mouseover', function() {\n\t\t\t\t\t\t\t\tsecondTry()\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsetButton(button);\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tcheckConsent(buttonsArray);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// set button's default and test parameters and push it into buttonsArray\n\t\t\t\tfunction setButton(button) {\n\t\t\t\t\t// set direct=1 parameter for direct download using download popup\n\t\t\t\t\tif ((!button.getAttribute('data-behavior') || button.getAttribute('data-behavior') && button.getAttribute('data-behavior').toLowerCase() !== 'downloadpage') && !avastGlobals.detect.os.isAndroid && !avastGlobals.detect.os.isIOS) {\n\t\t\t\t\t\tvar url = new URL(button.href),\n\t\t\t\t\t\t\tparams = url ? url.searchParams : null;\n\n\t\t\t\t\t\tparams.set('direct', 1);\n\t\t\t\t\t\turl.search = params.toString();\n\t\t\t\t\t\tbutton.href = url.toString();\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tempID = button.getAttribute('data-download-name'),\n\t\t\t\t\t\ttempHref = button.getAttribute('href');\n\n\t\t\t\t\tbuttonsArray.push({\n\t\t\t\t\t\t'el': button,\n\t\t\t\t\t\t'defaultID': tempID.search(testDownloadID) === -1 ? tempID : tempID.replace(testDownloadID, ''),\n\t\t\t\t\t\t'defaultHref': tempHref.search(testDownloadID) === -1 ? tempHref : tempHref.replace(testDownloadID, ''),\n\t\t\t\t\t\t'testID': tempID.search(testDownloadID) === -1 ? tempID + testDownloadID : tempID,\n\t\t\t\t\t\t'testHref': tempHref.search(testDownloadID) === -1 ? tempHref.replace(tempID, tempID + testDownloadID) : tempHref\n\t\t\t\t\t})\n\t\t\t\t};\n\n\t\t\t\t// check for\n\t\t\t\tfunction checkConsent(btnArray) {\n\t\t\t\t\t// check for cookie consent, then replace download IDs with testing one, else replace it with default one\n\t\t\t\t\tif (window.OnetrustActiveGroups && window.OnetrustActiveGroups.includes('C0002')) {\n\t\t\t\t\t\tbtnArray.forEach(function(buttonObj) {\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('href', buttonObj.testHref);\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('data-bi-download-name', buttonObj.testID);\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('data-download-name', buttonObj.testID);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbtnArray.forEach(function(buttonObj) {\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('href', buttonObj.defaultHref);\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('data-bi-download-name', buttonObj.defaultID);\n\t\t\t\t\t\t\tbuttonObj.el.setAttribute('data-download-name', buttonObj.defaultID);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// run consent check on load\n\t\t\t\tcheckConsent(buttonsArray);\n\n\t\t\t\t// listener for custom event from cookie consent banner\n\t\t\t\twindow.addEventListener('OneTrustGroupsUpdated', function() {checkConsent(buttonsArray)});\n\n\t\t\t\t// listener for pricebox update\n\t\t\t\twindow.addEventListener('pricebox-updated', function(event) {\n\t\t\t\t\tevent.detail.element.querySelectorAll(parameters.query).forEach(function(button){\n\t\t\t\t\t\tsetButton(button);\n\t\t\t\t\t\tcheckConsent(buttonsArray);\n\t\t\t\t\t})\n\t\t\t\t});\n\n\n\t\t\t} catch (error) {\n\t\t\t\t// singe data layer error tracking\n\t\t\t\tif (typeof sdl !== 'undefined') {\n\t\t\t\t\tconsole.error(error);\n\t\t\t\t\tsdl.push({\n\t\t\t\t\t\tsystem: {\n\t\t\t\t\t\t\terror: {\n\t\t\t\t\t\t\t\ttype: error.name,\n\t\t\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tevent: 'system.error'\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}());\n"]}