{"version":3,"sources":["../../../dev/j/components/ab-download-ids.js"],"names":["ABTestDownloadIDs","parameters","init","params","run","setButton","button","tempID","getAttribute","tempHref","buttonsArray","push","el","defaultID","search","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,GACZF,EAAaE,GAEhBC,IAAK,WAYG,QAASC,GAAUC,GAEf,GAAIC,GAASD,EAAOE,aAAa,sBAC7BC,EAAWH,EAAOE,aAAa,OAEnCE,GAAaC,MACTC,GAAMN,EACNO,WAAgD,IAAnCN,EAAOO,OAAOC,GAAyBR,EAASA,EAAOS,QAAQD,EAAgB,IAC5FE,aAAoD,IAArCR,EAASK,OAAOC,GAAyBN,EAAWA,EAASO,QAAQD,EAAgB,IACpGG,QAA6C,IAAnCX,EAAOO,OAAOC,GAAyBR,EAASQ,EAAiBR,EAC3EY,UAAiD,IAArCV,EAASK,OAAOC,GAAyBN,EAASO,QAAQT,EAAQA,EAASQ,GAAkBN,IAKjH,QAASW,GAAaC,GAEdC,OAAOC,sBAAwBD,OAAOC,qBAAqBC,SAAS,SACpEH,EAASI,QAAQ,SAASC,GACtBA,EAAUd,GAAGe,aAAa,OAAQD,EAAUP,UAC5CO,EAAUd,GAAGe,aAAa,wBAAyBD,EAAUR,QAC7DQ,EAAUd,GAAGe,aAAa,qBAAsBD,EAAUR,UAG9DG,EAASI,QAAQ,SAASC,GACtBA,EAAUd,GAAGe,aAAa,OAAQD,EAAUT,aAC5CS,EAAUd,GAAGe,aAAa,wBAAyBD,EAAUb,WAC7Da,EAAUd,GAAGe,aAAa,qBAAsBD,EAAUb,aAtC1E,IACI,GAAIE,GAAiBd,EAAW2B,SAC5BC,EAAUC,SAASC,iBAAiB9B,EAAW+B,OAC/CtB,IAGJmB,GAAQJ,QAAQ,SAASnB,GACrBD,EAAUC,KAqCdc,EAAaV,GAGbY,OAAOW,iBAAiB,wBAAyB,WAAYb,EAAaV,KAG1EY,OAAOW,iBAAiB,oBAAqB,SAASC,GAClDA,EAAMC,OAAOC,QAAQL,iBAAiB9B,EAAW+B,OAAOP,QAAQ,SAASnB,GACrED,EAAUC,GACVc,EAAaV,OAIvB,MAAO2B,GAEc,mBAARC,OACPC,QAAQF,MAAMA,GACdC,IAAI3B,MACA6B,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 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\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 } 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"]}