{"version":3,"sources":["../../../../dev/j/v2/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,WAC1C,YAEA,IAAIC,KAEJ,QACIC,KAAM,SAASC,GAEZF,EAAaE,GAEhBC,IAAK,WAYG,QAASC,GAAUC,GAEf,KAAMA,EAAOC,aAAa,kBAAoBD,EAAOC,aAAa,kBAA2E,iBAAvDD,EAAOC,aAAa,iBAAiBC,iBAAsCC,aAAaC,OAAOC,GAAGC,YAAcH,aAAaC,OAAOC,GAAGE,MAAO,CAChO,GAAIC,GAAM,GAAIC,KAAIT,EAAOU,MACrBb,EAASW,EAAMA,EAAIG,aAAe,IAEtCd,GAAOe,IAAI,SAAU,GACrBJ,EAAIK,OAAShB,EAAOiB,WACpBd,EAAOU,KAAOF,EAAIM,WAGtB,GAAIC,GAASf,EAAOC,aAAa,sBAC7Be,EAAWhB,EAAOC,aAAa,OAEnCgB,GAAaC,MACTC,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,IAKjH,QAASU,GAAaC,GAEdC,OAAOC,sBAAwBD,OAAOC,qBAAqBC,SAAS,SACpEH,EAASI,QAAQ,SAASC,GACtBA,EAAUb,GAAGc,aAAa,OAAQD,EAAUP,UAC5CO,EAAUb,GAAGc,aAAa,wBAAyBD,EAAUR,QAC7DQ,EAAUb,GAAGc,aAAa,qBAAsBD,EAAUR,UAG9DG,EAASI,QAAQ,SAASC,GACtBA,EAAUb,GAAGc,aAAa,OAAQD,EAAUT,aAC5CS,EAAUb,GAAGc,aAAa,wBAAyBD,EAAUZ,WAC7DY,EAAUb,GAAGc,aAAa,qBAAsBD,EAAUZ,aA/C1E,IACI,GAAIC,GAAiB1B,EAAWuC,SAC5BC,EAAUC,SAASC,iBAAiB1C,EAAW2C,OAC/CrB,IAGJkB,GAAQJ,QAAQ,SAAS/B,GACrBD,EAAUC,KA8Cd0B,EAAaT,GAGbW,OAAOW,iBAAiB,wBAAyB,WAAYb,EAAaT,KAG1EW,OAAOW,iBAAiB,oBAAqB,SAASC,GAClDA,EAAMC,OAAOC,QAAQL,iBAAiB1C,EAAW2C,OAAOP,QAAQ,SAAS/B,GACrED,EAAUC,GACV0B,EAAaT,OAKrBW,OAAOW,iBAAiB,mBAAoB,SAASC,GACjDA,EAAMC,OAAOC,QAAQL,iBAAiB1C,EAAW2C,OAAOP,QAAQ,SAAS/B,GACrED,EAAUC,GACV0B,EAAaT,OAKvB,MAAO0B,GAEc,mBAARC,OACPC,QAAQF,MAAMA,GACdC,IAAI1B,MACA4B,QACIH,OACII,KAAMJ,EAAMK,KACZC,QAASN,EAAMM,UAGvBT,MAAO","file":"ab-download-ids.js","sourcesContent":["var ABTestDownloadIDs = ABTestDownloadIDs || (function(){\n 'use strict';\n\n var parameters = {};\n\n return {\n init: function(params) {\n // default data-role=\"download-link\"\n parameters = params;\n },\n run: function() {\n try {\n var testDownloadID = parameters.IDSuffix,\n buttons = document.querySelectorAll(parameters.query),\n buttonsArray = [];\n\n // array of buttons object\n buttons.forEach(function(button) {\n setButton(button);\n })\n\n // set button's default and test parameters and push it into buttonsArray\n function setButton(button) {\n // set direct=1 parameter for direct download using download popup\n if ((!button.getAttribute('data-behavior') || button.getAttribute('data-behavior') && button.getAttribute('data-behavior').toLowerCase() !== 'downloadpage') && !avastGlobals.detect.os.isAndroid && !avastGlobals.detect.os.isIOS) {\n var url = new URL(button.href),\n params = url ? url.searchParams : null;\n\n params.set('direct', 1);\n url.search = params.toString();\n button.href = url.toString();\n }\n\n var tempID = button.getAttribute('data-download-name'),\n tempHref = button.getAttribute('href');\n\n buttonsArray.push({\n 'el': button,\n 'defaultID': tempID.search(testDownloadID) === -1 ? tempID : tempID.replace(testDownloadID, ''),\n 'defaultHref': tempHref.search(testDownloadID) === -1 ? tempHref : tempHref.replace(testDownloadID, ''),\n 'testID': tempID.search(testDownloadID) === -1 ? tempID + testDownloadID : tempID,\n 'testHref': tempHref.search(testDownloadID) === -1 ? tempHref.replace(tempID, tempID + testDownloadID) : tempHref\n })\n };\n\n // check for\n function checkConsent(btnArray) {\n // check for cookie consent, then replace download IDs with testing one, else replace it with default one\n if (window.OnetrustActiveGroups && window.OnetrustActiveGroups.includes('C0002')) {\n btnArray.forEach(function(buttonObj) {\n buttonObj.el.setAttribute('href', buttonObj.testHref);\n buttonObj.el.setAttribute('data-bi-download-name', buttonObj.testID);\n buttonObj.el.setAttribute('data-download-name', buttonObj.testID);\n });\n } else {\n btnArray.forEach(function(buttonObj) {\n buttonObj.el.setAttribute('href', buttonObj.defaultHref);\n buttonObj.el.setAttribute('data-bi-download-name', buttonObj.defaultID);\n buttonObj.el.setAttribute('data-download-name', buttonObj.defaultID);\n });\n }\n }\n\n // run consent check on load\n checkConsent(buttonsArray);\n\n // listener for custom event from cookie consent banner\n window.addEventListener('OneTrustGroupsUpdated', function() {checkConsent(buttonsArray)});\n\n // listener for actionbox update\n window.addEventListener('actionbox-updated', function(event) {\n event.detail.element.querySelectorAll(parameters.query).forEach(function(button){\n setButton(button);\n checkConsent(buttonsArray);\n })\n });\n\n // listener for actionbox update v3\n window.addEventListener('pricebox-updated', function(event) {\n event.detail.element.querySelectorAll(parameters.query).forEach(function(button){\n setButton(button);\n checkConsent(buttonsArray);\n })\n });\n\n\n } catch (error) {\n // singe data layer error tracking\n if (typeof sdl !== 'undefined') {\n console.error(error);\n sdl.push({\n system: {\n error: {\n type: error.name,\n message: error.message,\n }\n },\n event: 'system.error'\n })\n }\n }\n }\n };\n}());\n"]}