{"version":3,"sources":["../../../../dev/j/v3/components/singleDL-secondary.js"],"names":["getSafe","obj","path","parts","split","acc","i","length","removeUnwantedParamsFromUrl","urlParams","unwantedParams","window","location","host","pathname","toString","sdl","sdlSecondaryObj","buttons","document","addEventListener","e","button","form","popup","target","closest","push","user","download","products","campaign","checkAttribute","campaignMarker","sku","maintenance","seats","quantity","currencyCode","category","price","tax","brand","link","removeUnwantedParamsFromLink","href","offerType","localPrice","localTax","event","querySelector","system","modal","id","component","sdlObj","URLParams","URLSearchParams","search","screen","url","woParams","protocol","replace","hostname","hash","params","Object","fromEntries","locale","screenCategory","title","type","name","section","lineOfBusiness","screenId","getAttribute","indexOf","productsArray","attributes","attributesList","productsAmount","j","len","Array","fill","Number","localCurrencyCode","buy","hasAttribute","media","match","click","element","actionType","clickUrl","text","textContent","send","modals","querySelectorAll","clickedElement","attributeName","URL","btnHrefWithoutParams","consentIdMatch","cookie","consentId","client","cmpId","consentGroups","OptanonActiveGroups","update","consent","error","console","message","description"],"mappings":"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","file":"singleDL-secondary.js","sourcesContent":["/**\n * Single DataLayer - Secondary part\n * Placed in the footer, pushes data to sdl object\n * Primary part (singleDL-primary.js) is placed in the \n * @version 1.1.0\n * @author Vendula Frýzlová , Jaroslav Slaby , Fedor Kušš \n * @copyright Avast Software s.r.o ©2022\n */\n\n(function sdlSecondary() {\n\t'use strict';\n\n // Function to safely retrieve values from nested objects\n function getSafe(obj, path) {\n var parts = path.split('.');\n var acc = obj;\n for (var i = 0; i < parts.length; i++) {\n if (acc && typeof acc[parts[i]] !== 'undefined') {\n acc = acc[parts[i]];\n } else {\n return 'unknown - ' + parts[i];\n }\n }\n return acc;\n }\n\n // Function to remove unwanted parameters from URL\n function removeUnwantedParamsFromUrl(urlParams) {\n var unwantedParams = ['ASWPARAM', 'aswparam', '_ga', '_gl'];\n for (var i = 0; i < unwantedParams.length; i++) {\n urlParams.delete(unwantedParams[i]);\n }\n var URLWithoutUnwantedParams = window.location.host + window.location.pathname + '?' + urlParams.toString();\n return URLWithoutUnwantedParams;\n }\n\n\twindow.sdl = window.sdl || [];\n\n\ttry {\n\t\tvar sdlSecondaryObj = {\n\t\t\t// After click on a button, create object and push to sdl\n\t\t\tbuttons: function () {\n\t\t\t\tdocument.addEventListener('click', function (e) {\n\t\t\t\t\tvar button,\n\t\t\t\t\t\tform,\n\t\t\t\t\t\tpopup;\n\n\t\t\t\t\t// DL buttons\n\t\t\t\t\tif (button = e.target.closest('a[data-role=\"download-link\"]')) {\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\tdownload: {\n\t\t\t\t\t\t\t\t\tproducts: [{\n\t\t\t\t\t\t\t\t\t\tcampaign: sdlSecondaryObj.checkAttribute(button, 'data-campaign'),\n\t\t\t\t\t\t\t\t\t\tcampaignMarker: sdlSecondaryObj.checkAttribute(button, 'data-campaign-marker'),\n\t\t\t\t\t\t\t\t\t\tsku: sdlSecondaryObj.checkAttribute(button, 'data-download-name'),\n\t\t\t\t\t\t\t\t\t\tmaintenance: 0,\n\t\t\t\t\t\t\t\t\t\tseats: 1,\n\t\t\t\t\t\t\t\t\t\tquantity: 1,\n\t\t\t\t\t\t\t\t\t\tcurrencyCode: 'USD',\n\t\t\t\t\t\t\t\t\t\tcategory: 'Consumer',\n\t\t\t\t\t\t\t\t\t\tprice: 0,\n\t\t\t\t\t\t\t\t\t\ttax: 0,\n\t\t\t\t\t\t\t\t\t\tbrand: 'Avast',\n\t\t\t\t\t\t\t\t\t\tlink: sdlSecondaryObj.removeUnwantedParamsFromLink(button.href),\n\t\t\t\t\t\t\t\t\t\tofferType: 'download',\n\t\t\t\t\t\t\t\t\t\tlocalPrice: 0,\n\t\t\t\t\t\t\t\t\t\tlocalTax: 0\n\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tevent: 'user.download.products'\n\t\t\t\t\t\t});\n\n // Download popup\n if (popup = document.querySelector('[data-behavior=\"downloadPopup\"]')) {\n if (popup) { // Ensure popup exists\n sdl.push({\n system: {\n modal: {\n id: popup.id,\n component: sdlSecondaryObj.checkAttribute(popup, 'data-cmp-name'),\n path: '/' + getSafe(sdlObj, 'screen.locale') + '/' + sdlSecondaryObj.checkAttribute(popup, 'data-cmp-name')\n }\n },\n event: 'system.modal'\n });\n\n var URLParams = new URLSearchParams(window.location.search);\n sdl.push({\n event: 'screen',\n screen: {\n location: {\n url: window.location.search ? removeUnwantedParamsFromUrl(URLParams) : window.location.host + window.location.pathname,\n woParams: window.location.host + window.location.pathname,\n protocol: window.location.protocol.replace(':', ''),\n path: '/' + getSafe(sdlObj, 'screen.locale') + '/' + getSafe(sdlObj, 'screen.path'),\n hostname: getSafe(sdlObj, 'screen.hostname'),\n hash: window.location.hash,\n params: window.location.search ? Object.fromEntries(URLParams) : ''\n },\n locale: getSafe(sdlObj, 'screen.locale'),\n screenCategory: getSafe(sdlObj, 'screen.screenCategory'),\n title: document.title,\n type: 'modal',\n name: getSafe(sdlObj, 'screen.name'),\n section: popup.id,\n lineOfBusiness: getSafe(sdlObj, 'screen.lineOfBusiness'),\n screenId: getSafe(sdlObj, 'screen.screenId')\n }\n });\n }\n }\n\t\t\t\t\t}\n\n\t\t\t\t\t// Buy buttons\n\t\t\t\t\tif (button = e.target.closest('a[data-role=\"cart-link\"]')) {\n\t\t\t\t\t\tvar multipleProducts = button.getAttribute('data-product-id') && button.getAttribute('data-product-id').indexOf('|') > -1 ? true : false;\n\n\t\t\t\t\t\tif (multipleProducts) {\n\t\t\t\t\t\t\tvar productsArray = [],\n\t\t\t\t\t\t\t\tattributes = {},\n\t\t\t\t\t\t\t\tattributesList = ['data-product-id', 'data-quantity', 'data-seats', 'data-maintenance', 'data-campaign', 'data-campaign-marker', 'data-price', 'data-product-category', 'data-currency'],\n\t\t\t\t\t\t\t\tproductsAmount = button.getAttribute('data-product-id') ? button.getAttribute('data-product-id').split('|').length : 0;\n \n\t\t\t\t\t\t\t// creating the object of arrays\n\t\t\t\t\t\t\t// we trust that all data attributes have the respective number of values. If some attribute is missing then we add empty strings to the array \n\t\t\t\t\t\t\tfunction missingAttributeFill(len) {\n\t\t\t\t\t\t\t\treturn new Array(len).fill('');\n\t\t\t\t\t\t\t}\n\n \n\t\t\t\t\t\t\tfor (var j = 0; j < attributesList.length; j++) {\n\t\t\t\t\t\t\t\tattributes[attributesList[j]] = button.getAttribute(attributesList[j]) && button.getAttribute(attributesList[j]).indexOf('|') > -1\n\t\t\t\t\t\t\t\t\t? button.getAttribute(attributesList[j]).split('|') \n\t\t\t\t\t\t\t\t\t: missingAttributeFill(productsAmount) \n\t\t\t\t\t\t\t} \n\n\t\t\t\t\t\t\tfor (var i = 0; i < productsAmount; i++) {\n\t\t\t\t\t\t\t\tproductsArray.push({\n\t\t\t\t\t\t\t\t\tcampaign: attributes['data-campaign'][i],\n\t\t\t\t\t\t\t\t\tcampaignMarker: attributes['data-campaign-marker'][i],\n\t\t\t\t\t\t\t\t\tsku: attributes['data-product-id'][i],\n\t\t\t\t\t\t\t\t\tmaintenance: Number(attributes['data-maintenance'][i]),\n\t\t\t\t\t\t\t\t\tseats: Number(attributes['data-seats'][i]),\n\t\t\t\t\t\t\t\t\tquantity: Number(attributes['data-quantity'][i]),\n\t\t\t\t\t\t\t\t\tcurrencyCode: 'USD',\n\t\t\t\t\t\t\t\t\tcategory: attributes['data-product-category'][i],\n\t\t\t\t\t\t\t\t\tbrand: 'Avast',\n\t\t\t\t\t\t\t\t\tlink: sdlSecondaryObj.removeUnwantedParamsFromLink(button.href),\n\t\t\t\t\t\t\t\t\tofferType: 'buy',\n\t\t\t\t\t\t\t\t\tlocalCurrencyCode: attributes['data-currency'][i],\n\t\t\t\t\t\t\t\t\tlocalPrice: Number(attributes['data-price'][i])\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tbuy: { products: productsArray }\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tevent: 'user.buy.products'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tbuy: {\n\t\t\t\t\t\t\t\t\t\tproducts: [{\n\t\t\t\t\t\t\t\t\t\t\tcampaign: sdlSecondaryObj.checkAttribute(button, 'data-campaign'),\n\t\t\t\t\t\t\t\t\t\t\tcampaignMarker: sdlSecondaryObj.checkAttribute(button, 'data-campaign-marker'),\n\t\t\t\t\t\t\t\t\t\t\tsku: sdlSecondaryObj.checkAttribute(button, 'data-product-id'),\n\t\t\t\t\t\t\t\t\t\t\tmaintenance: Number(sdlSecondaryObj.checkAttribute(button, 'data-maintenance')),\n\t\t\t\t\t\t\t\t\t\t\tseats: Number(sdlSecondaryObj.checkAttribute(button, 'data-seats')),\n\t\t\t\t\t\t\t\t\t\t\tquantity: Number(button.hasAttribute('data-quantity') ? button.getAttribute('data-quantity') : '1'),\n\t\t\t\t\t\t\t\t\t\t\tcurrencyCode: 'USD',\n\t\t\t\t\t\t\t\t\t\t\tcategory: sdlSecondaryObj.checkAttribute(button, 'data-product-category'),\n\t\t\t\t\t\t\t\t\t\t\tbrand: 'Avast',\n\t\t\t\t\t\t\t\t\t\t\tlink: sdlSecondaryObj.removeUnwantedParamsFromLink(button.href),\n\t\t\t\t\t\t\t\t\t\t\tofferType: 'buy',\n\t\t\t\t\t\t\t\t\t\t\tlocalCurrencyCode: sdlSecondaryObj.checkAttribute(button, 'data-currency'),\n\t\t\t\t\t\t\t\t\t\t\tlocalPrice: Number(button.hasAttribute('data-price') ? button.getAttribute('data-price') : '0')\n\t\t\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tevent: 'user.buy.products'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Media buttons\n\t\t\t\t\tif (button = e.target.closest('a[href*=\".pdf\"], a[data-role=\"media\"]')) {\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\tdownload: {\n\t\t\t\t\t\t\t\t\tmedia: {\n\t\t\t\t\t\t\t\t\t\ttype: 'media',\n\t\t\t\t\t\t\t\t\t\tname: button.href.match(/.*\\/(.*?\\..*)/) ? button.href.match(/.*\\/(.*?\\..*)/)[1].split('?')[0] : null,\n\t\t\t\t\t\t\t\t\t\turl: sdlSecondaryObj.removeUnwantedParamsFromLink(window.location.href)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tevent: 'user.download.media'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Function buttons - Close\n\t\t\t\t\tif (button = e.target.closest('button.modal-close')) {\n\t\t\t\t\t\tvar modal = button.closest('.modal');\n\t\t\t\t\t\tif (modal) {\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tclick: {\n\t\t\t\t\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\t\t\t\t\tactionType: 'close',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'cmp-modal',\n\t\t\t\t\t\t\t\t\t\t\tpath: '/' + getSafe(sdlObj, 'screen.locale') + '/cmp-modal',\n\t\t\t\t\t\t\t\t\t\t\tid: modal.id,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tevent: 'user.click.element'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tscreen: {\t\t\n\t\t\t\t\t\t\t\t\ttype: getSafe(sdlObj, 'screen.type'),\n\t\t\t\t\t\t\t\t\tsection: null\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Function buttons - Close DTYP modal\n\t\t\t\t\tif (button = e.target.closest('.js-dtp-close')) {\n\t\t\t\t\t\tvar modal = button.closest('.js-popup-dtp');\n\t\t\t\t\t\tif (modal) {\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tclick: {\n\t\t\t\t\t\t\t\t\t\telement: {\n\t\t\t\t\t\t\t\t\t\t\tactionType: 'close',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'dtyp-popup',\n\t\t\t\t\t\t\t\t\t\t\tpath: '/' + getSafe(sdlObj, 'screen.locale') + '/dtyp-popup',\n\t\t\t\t\t\t\t\t\t\t\tid: modal.id,\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tevent: 'user.click.element'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\t\tscreen: {\t\t\n\t\t\t\t\t\t\t\t\ttype: getSafe(sdlObj, 'screen.type'),\n\t\t\t\t\t\t\t\t\tsection: null\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Other link buttons\n\t\t\t\t\tif (button = e.target.closest('a[data-role=\"promo-link\"], a[data-role=\"cta-link\"]')) {\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\tclick: {\n\t\t\t\t\t\t\t\t\tlink: {\n\t\t\t\t\t\t\t\t\t\tclickUrl: sdlSecondaryObj.checkAttribute(button, 'href'),\n\t\t\t\t\t\t\t\t\t\turl: sdlSecondaryObj.removeUnwantedParamsFromLink(window.location.href),\n\t\t\t\t\t\t\t\t\t\ttype: sdlSecondaryObj.checkAttribute(button, 'data-role'),\n\t\t\t\t\t\t\t\t\t\ttext: e.target.closest('span') ? e.target.closest('span').textContent : ''\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tevent: 'user.click.link'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Submit form buttons\n\t\t\t\t\tif (form = e.target.closest('form')) {\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\tsend: {\n\t\t\t\t\t\t\t\t\tform: {\n\t\t\t\t\t\t\t\t\t\tid: sdlSecondaryObj.checkAttribute(form, 'id'),\n\t\t\t\t\t\t\t\t\t\tname: sdlSecondaryObj.checkAttribute(form, 'action'),\n\t\t\t\t\t\t\t\t\t\turl: sdlSecondaryObj.removeUnwantedParamsFromLink(window.location.href)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tevent: 'user.send.form'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// Modal\n\t\t\tmodal: function () {\n\t\t\t\tvar modals = document.querySelectorAll('.modal');\n\t\t\t\tfor (var i = 0; i < modals.length; i++) {\n\t\t\t\t\tvar modal = modals[i];\n\n\t\t\t\t\tmodal.addEventListener('shown.bs.modal', function (e) {\n\t\t\t\t\t\tmodal = e.target;\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tsystem: {\n\t\t\t\t\t\t\t\tmodal: {\n\t\t\t\t\t\t\t\t\tid: modal.id,\n\t\t\t\t\t\t\t\t\tcomponent: sdlSecondaryObj.checkAttribute(modal, 'data-cmp-name'),\n\t\t\t\t\t\t\t\t\tpath: '/' + getSafe(sdlObj, 'screen.locale') + '/' + sdlSecondaryObj.checkAttribute(modal, 'data-cmp-name')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tevent: 'system.modal'\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tvar URLParams = new URLSearchParams(window.location.search);\n\t\t\t\t\t\tsdl.push({\n\t\t\t\t\t\t\tevent: 'screen',\n\t\t\t\t\t\t\tscreen: {\n\t\t\t\t\t\t\t\tlocation: {\n\t\t\t\t\t\t\t\t\turl: window.location.search ? removeUnwantedParamsFromUrl(URLParams) : window.location.host + window.location.pathname,\n\t\t\t\t\t\t\t\t\twoParams: window.location.host + window.location.pathname,\n\t\t\t\t\t\t\t\t\tprotocol: window.location.protocol.replace(':', ''),\n\t\t\t\t\t\t\t\t\tpath: '/' + getSafe(sdlObj, 'screen.locale') + '/' + getSafe(sdlObj, 'screen.path'),\n\t\t\t\t\t\t\t\t\thostname: getSafe(sdlObj, 'screen.hostname'),\n\t\t\t\t\t\t\t\t\thash: window.location.hash,\n\t\t\t\t\t\t\t\t\tparams: window.location.search ? Object.fromEntries(URLParams) : ''\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlocale: getSafe(sdlObj, 'screen.locale'),\n\t\t\t\t\t\t\t\tscreenCategory: getSafe(sdlObj, 'screen.screenCategory'),\n\t\t\t\t\t\t\t\ttitle: document.title,\n\t\t\t\t\t\t\t\ttype: 'modal',\n\t\t\t\t\t\t\t\tname: getSafe(sdlObj, 'screen.name'),\n\t\t\t\t\t\t\t\tsection: modal.id,\n\t\t\t\t\t\t\t\tlineOfBusiness: getSafe(sdlObj, 'screen.lineOfBusiness'),\n\t\t\t\t\t\t\t\tscreenId: getSafe(sdlObj, 'screen.screenId')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// Check if element has specific data attribute and get its value\n\t\t\tcheckAttribute: function (clickedElement, attributeName) {\n\t\t\t\treturn clickedElement.hasAttribute(attributeName) ? clickedElement.getAttribute(attributeName) : '';\n\t\t\t},\n\n\t\t\t// Remove unwanted URL parameters from a link\n\t\t\tremoveUnwantedParamsFromLink: function (href) {\n\t\t\t\tvar hash = window.location.hash,\n\t\t\t\t\turl = new URL(href),\n\t\t\t\t\tURLParams = new URLSearchParams(url.search),\n\t\t\t\t\tunwantedParams = ['ASWPARAM', 'aswparam', '_ga'];\n\n\t\t\t\turl.search = '';\n\t\t\t\tvar btnHrefWithoutParams = url.toString().split('#')[0];\n\n\t\t\t\tfor (var i = 0; i < unwantedParams.length; i++) {\n\t\t\t\t\tURLParams.delete(unwantedParams[i]);\n\t\t\t\t}\n\t\t\t\tvar URLWithoutUnwantedParams = btnHrefWithoutParams + '?' + URLParams.toString() + hash;\n\t\t\t\treturn URLWithoutUnwantedParams;\n\t\t\t},\n\n\t\t\t// Remove unwanted URL parameters from URL\n\t\t\tremoveUnwantedParamsFromUrl: function (URLParams) {\n\t\t\t\tvar unwantedParams = ['ASWPARAM', 'aswparam', '_ga'];\n\t\t\t\tfor (var i = 0; i < unwantedParams.length; i++) {\n\t\t\t\t\tURLParams.delete(unwantedParams[i]);\n\t\t\t\t}\n\t\t\t\tvar URLWithoutUnwantedParams = window.location.host + window.location.pathname + '?' + URLParams.toString();\n\t\t\t\treturn URLWithoutUnwantedParams;\n\t\t\t}\n\t\t};\n\n\t\t// Custom event from 'otBannerSdk.js' script. It watches changes in cookie consent\n\t\twindow.addEventListener('OneTrustGroupsUpdated', function () {\n\t\t\t// on change push cookie data to sdl datalayer\n\t\t\tvar consentIdMatch = document.cookie.match(/OptanonConsent=.*?(consentId=(.*?)(?=&))/);\n\t\t\tvar consentId = consentIdMatch ? consentIdMatch[2] : '';\n\n\t\t\tsdl.push({\n\t\t\t\tclient: {\n\t\t\t\t\tcmpId: consentId,\n\t\t\t\t},\n\t\t\t\tconsentGroups: window.OptanonActiveGroups ? window.OptanonActiveGroups : '',\n\t\t\t\tuser: {\n\t\t\t\t\tupdate: {\n\t\t\t\t\t\tconsent: {}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tevent: \"user.update.consent\"\n\t\t\t});\n\t\t});\n\n\t\tsdlSecondaryObj.buttons();\n\t\tsdlSecondaryObj.modal();\n\n\t} catch (error) {\n\t\tconsole.error(error);\n // Push error information to sdl\n\t\tsdl.push({\n\t\t\tsystem: {\n\t\t\t\terror: {\n\t\t\t\t\ttype: error.name,\n\t\t\t\t\tmessage: error.message,\n description: 'singleDL-secondary.js'\n\t\t\t\t}\n\t\t\t},\n\t\t\tevent: 'system.error'\n\t\t});\n\t}\n})();\n"]}