{"version":3,"sources":["../../../../../dev/j/v2/smb/tools/campaignMarker.js"],"names":["cmChannelValue","cookieStorage","avm","require","locationHref","window","location","href","cmChannelUtmMap","JSON","parse","document","getElementById","dataset","cmMap","cmChannelCookieMap","cmFromCookie","listOfCm","Object","keys","filter","key","every","item","getItem","join","indexOf","length","setItem","minutes","now","Date","setTime","getTime","toUTCString","hostname"],"mappings":"CASA,WACC,YAEA,IAOCA,GAPGC,EAAgBC,IAAIC,QAAQ,+BAC/BC,EAAeC,OAAOC,SAASC,KAI/BC,EAAkBC,KAAKC,MAAMC,SAASC,eAAe,0BAA0BC,QAAQC,OACvFC,EAAqBN,KAAKC,MAAMC,SAASC,eAAe,6BAA6BC,QAAQC,OA2C1FE,EAtB6B,SAASC,GAMzC,MALaC,QAAOC,KAAKF,GAAUG,OAAO,SAASC,GAClD,MAAOJ,GAASI,GAAKC,MAAM,SAASC,GACnC,MAAOtB,GAAcuB,QAAQD,OAGjBE,KAAK,MAgB0BV,IAG9Cf,EAtC8B,SAASiB,EAAUb,GAMhD,MALac,QAAOC,KAAKF,GAAUG,OAAO,SAASC,GAClD,MAAOJ,GAASI,GAAKC,MAAM,SAASC,GACnC,MAAOnB,GAAasB,QAAQH,IAAS,MAGzBE,KAAK,MA8BoBjB,EAAiBJ,IAE3BY,IAERhB,EAAe2B,OAAS,GAC7C1B,EAAc2B,QApDM,kBAoDqB5B,EAflB,SAAS6B,GAChC,GAAIC,GAAM,GAAIC,KAEd,OADAD,GAAIE,QAAQF,EAAIG,UAAsB,GAAVJ,EAAe,KACpCC,EAAII,eAzCW,IAqD2E,IAAK5B,SAAS6B,UAAU","file":"campaignMarker.js","sourcesContent":["/**\n * Set __smbChannelSrc cookie based on url parameters\n * @version 1.0.0\n * @author Erik Ondrus \n * @requires avast.storage.cookieStorage\n * @requires element with id \"smb-cm-channel-utm-map\" and \"data-cm-map\"\n * @requires element with id \"smb-cm-channel-cookie-map\" and \"data-cm-map\"\n */\n\n(function() {\n\t'use strict';\n\n\tvar cookieStorage = avm.require('avast.storage.cookieStorage'),\n\t\tlocationHref = window.location.href,\n\t\texpirationInMinutes = 30,\n\t\tCM_CHANNEL_COOKIE = '__smbChannelSrc',\n\t\t//\"Cannot read properties of null\" Error here is intentional to alert you to missing data\n\t\tcmChannelUtmMap = JSON.parse(document.getElementById('smb-cm-channel-utm-map').dataset.cmMap),\n\t\tcmChannelCookieMap = JSON.parse(document.getElementById('smb-cm-channel-cookie-map').dataset.cmMap),\n\t\tcmChannelValue;\n\n\t/*\n\t * @param {object} - list of CMs {'marker': ['parameter=value']}\n\t * @param {string} - window.location.Href\n\t * @returns {string}\n\t */\n\tvar getMarkerBasedOnUtmList = function(listOfCm, locationHref) {\n\t\tvar marker = Object.keys(listOfCm).filter(function(key) {\n\t\t\treturn listOfCm[key].every(function(item) {\n\t\t\t\treturn locationHref.indexOf(item) > -1;\n\t\t\t});\n\t\t});\n\t\treturn marker.join('-');\n\t};\n\t\n\t/*\n\t * @param {object} - list of CMs {'marker': ['cookieName']}\t \n\t * @returns {string}\n\t */\n\tvar getMarkerBasedOnCookieList = function(listOfCm) {\n\t\tvar marker = Object.keys(listOfCm).filter(function(key) {\n\t\t\treturn listOfCm[key].every(function(item) {\n\t\t\t\treturn cookieStorage.getItem(item);\n\t\t\t});\n\t\t});\t\t\n\t\treturn marker.join('-');\n\t};\t\n\n\t/*\n\t * @param {number} - minutes\n\t * @returns {UTCString}\n\t */\n\tvar getExpirationTime = function(minutes) {\n\t\tvar now = new Date();\n\t\tnow.setTime(now.getTime() + minutes * 60 * 1000);\n\t\treturn now.toUTCString();\n\t};\n\n\t/*\n\t * Set Cookie with smbChannelSrc\n\t */\n\tvar cmFromCookie = getMarkerBasedOnCookieList(cmChannelCookieMap);\n\tvar cmFromUtm = getMarkerBasedOnUtmList(cmChannelUtmMap, locationHref);\n\n\tcmChannelValue = cmFromUtm || cmFromCookie // the utm value is prioritized\n\t\n\tif (cmChannelValue && cmChannelValue.length > 0) {\n\t\tcookieStorage.setItem(CM_CHANNEL_COOKIE, cmChannelValue, getExpirationTime(expirationInMinutes), '/', location.hostname, false);\n\t}\n})();\n"]}