{"version":3,"sources":["../../../../dev/j/v3/components/ab-download-ids.js"],"names":["ABTestDownloadIDs","parameters","init","params","run","setButton","button","getAttribute","toLowerCase","avastGlobals","detect","os","isAndroid","isIOS","url","URL","href","searchParams","set","search","toString","tempID","tempHref","buttonsArray","push","el","defaultID","testDownloadID","replace","defaultHref","testID","testHref","checkConsent","btnArray","window","OnetrustActiveGroups","includes","forEach","buttonObj","setAttribute","IDSuffix","buttons","document","querySelectorAll","query","addEventListener","event","detail","element","error","sdl","console","system","type","name","message"],"mappings":"AAAA,GAAIA,mBAAoBA,mBAAsB,WAC7C,YAEA,IAAIC,KAEJ,QACCC,KAAM,SAASC,GAEdF,EAAaE,GAEdC,IAAK,WAYH,QAASC,GAAUC,GAElB,KAAMA,EAAOC,aAAa,kBAAoBD,EAAOC,aAAa,kBAA2E,iBAAvDD,EAAOC,aAAa,iBAAiBC,iBAAsCC,aAAaC,OAAOC,GAAGC,YAAcH,aAAaC,OAAOC,GAAGE,MAAO,CACnO,GAAIC,GAAM,GAAIC,KAAIT,EAAOU,MACxBb,EAASW,EAAMA,EAAIG,aAAe,IAEnCd,GAAOe,IAAI,SAAU,GACrBJ,EAAIK,OAAShB,EAAOiB,WACpBd,EAAOU,KAAOF,EAAIM,WAGnB,GAAIC,GAASf,EAAOC,aAAa,sBAChCe,EAAWhB,EAAOC,aAAa,OAEhCgB,GAAaC,MACZC,GAAMnB,EACNoB,WAAgD,IAAnCL,EAAOF,OAAOQ,GAAyBN,EAASA,EAAOO,QAAQD,EAAgB,IAC5FE,aAAoD,IAArCP,EAASH,OAAOQ,GAAyBL,EAAWA,EAASM,QAAQD,EAAgB,IACpGG,QAA6C,IAAnCT,EAAOF,OAAOQ,GAAyBN,EAASM,EAAiBN,EAC3EU,UAAiD,IAArCT,EAASH,OAAOQ,GAAyBL,EAASM,QAAQP,EAAQA,EAASM,GAAkBL,IAK3G,QAASU,GAAaC,GAEjBC,OAAOC,sBAAwBD,OAAOC,qBAAqBC,SAAS,SACvEH,EAASI,QAAQ,SAASC,GACzBA,EAAUb,GAAGc,aAAa,OAAQD,EAAUP,UAC5CO,EAAUb,GAAGc,aAAa,wBAAyBD,EAAUR,QAC7DQ,EAAUb,GAAGc,aAAa,qBAAsBD,EAAUR,UAG3DG,EAASI,QAAQ,SAASC,GACzBA,EAAUb,GAAGc,aAAa,OAAQD,EAAUT,aAC5CS,EAAUb,GAAGc,aAAa,wBAAyBD,EAAUZ,WAC7DY,EAAUb,GAAGc,aAAa,qBAAsBD,EAAUZ,aA/C9D,IACC,GAAIC,GAAiB1B,EAAWuC,SAC/BC,EAAUC,SAASC,iBAAiB1C,EAAW2C,OAC/CrB,IAGDkB,GAAQJ,QAAQ,SAAS/B,GACxBD,EAAUC,KA8CX0B,EAAaT,GAGbW,OAAOW,iBAAiB,wBAAyB,WAAYb,EAAaT,KAG1EW,OAAOW,iBAAiB,mBAAoB,SAASC,GACpDA,EAAMC,OAAOC,QAAQL,iBAAiB1C,EAAW2C,OAAOP,QAAQ,SAAS/B,GACxED,EAAUC,GACV0B,EAAaT,OAKd,MAAO0B,GAEW,mBAARC,OACVC,QAAQF,MAAMA,GACdC,IAAI1B,MACH4B,QACCH,OACCI,KAAMJ,EAAMK,KACZC,QAASN,EAAMM,UAGjBT,MAAO","file":"ab-download-ids.js","sourcesContent":["var ABTestDownloadIDs = ABTestDownloadIDs || (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 = parameters.IDSuffix,\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\tsetButton(button);\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"]}