{"version":3,"file":"96dd871c.js","sources":["../../../src/lib/media-query.ts","../../../src/helpers/dy-identifier.ts","../../../src/helpers/set-persona-cookie.ts"],"sourcesContent":["/**\n * media query\n * @param {object} argument object\n * @param {string} object.view - the targetted screen size to execute the function\n * @param {fn} oject.callback - function to execute\n * @param {object} oject.views - array of available views that can be targetted\n */\nexport default function (opts: object) {\n const config = {\n callback: () => {},\n view: null,\n views: {\n smallest_phone: '(max-width: 374px)',\n small_phone: '(max-width: 640px)',\n phone: '(max-width: 767px)',\n mobile: '(max-width: 1024px)',\n phone_to_desktop: '(min-width: 563px)',\n tablet: '(min-width: 768px)',\n tablet_only: '(min-width: 768px) and (max-width: 1024px)',\n tablet_portrait: '(min-width: 768px) and (max-width: 979px)',\n tablet_landscape: '(min-width: 980px) and (max-width: 1024px)',\n desktop: '(min-width: 1025px)',\n desktop_to_large: '(min-width: 1025px) and (max-width: 1280px)',\n desktop_large: '(min-width: 1281px)',\n desktop_large_to_huge: '(min-width: 1281px) and (max-width: 1400px)',\n desktop_huge: '(min-width: 1401px)',\n },\n },\n c = {...config, ...opts};\n\n let currentView = '';\n\n const mq = {\n init() {\n if (c.view) {\n Object.keys(c.views).forEach(function (key) {\n if (key === c.view) {\n currentView = c.views[key];\n }\n });\n\n const query = window.matchMedia(currentView);\n\n if (query.matches === true) {\n if (typeof c.callback === 'function') {\n c.callback();\n }\n }\n }\n },\n };\n\n return mq.init();\n}\n","import mediaQuery from 'Js/lib/media-query';\n\n/**\n * DY Identity Stitching\n * @param {String} hashedEmail - email is already hashed\n */\n\nfunction sendIdentifier(hashedEmail: string) {\n function init() {\n sendToDY();\n }\n\n function sendToDY() {\n mediaQuery({\n view: 'desktop',\n callback: () => {\n // @ts-ignore\n DY.API('identify', {\n uid: hashedEmail,\n type: 'he',\n });\n },\n });\n }\n\n return init();\n}\n\nexport default sendIdentifier;\n","/**\n * Set Persona Cookie\n * @desc Encrypts provided email and sets it as cookie\n * @param {String} email\n * @param {Boolean} isHashed - email is already hashed\n */\nimport sendIdentifier from 'Js/helpers/dy-identifier';\nimport {setCookie} from 'Js/lib/cookies';\n\nasync function setPersonaCookie(email: string, isHashed = false) {\n const config = {\n daysToExpire: 365,\n cookie: 'skck',\n };\n\n /**\n * Encrypt Email\n * @desc Uses built in crypto module to encrypt a string to SHA256\n * @param {String} emailToEncrypt\n * @returns {String} hash\n */\n async function encryptEmail(emailToEncrypt: string) {\n // encode as UTF-8\n const msgBuffer = new TextEncoder().encode(emailToEncrypt);\n\n // hash the message\n const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);\n\n // convert ArrayBuffer to Array\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n\n // convert bytes to hex string\n const hashHex = hashArray\n .map((b) => b.toString(16).padStart(2, '0'))\n .join('');\n return hashHex;\n }\n\n if (isHashed) {\n sendIdentifier(email);\n setCookie(config.cookie, email, config.daysToExpire);\n } else {\n const lowerCaseEmail = email.toLowerCase();\n const encryptedEmail = await encryptEmail(lowerCaseEmail);\n\n sendIdentifier(encryptedEmail);\n setCookie(config.cookie, encryptedEmail, config.daysToExpire);\n }\n}\n\nexport default setPersonaCookie;\n"],"names":["mediaQuery","opts","config","c","currentView","key","sendIdentifier","hashedEmail","init","sendToDY","setPersonaCookie","email","isHashed","encryptEmail","emailToEncrypt","msgBuffer","hashBuffer","b","setCookie","lowerCaseEmail","encryptedEmail"],"mappings":"kCAOA,SAAAA,EAAyBC,EAAc,CACrC,MAAMC,EAAS,CACX,SAAU,IAAM,CAAC,EACjB,KAAM,KACN,MAAO,CACL,eAAgB,qBAChB,YAAa,qBACb,MAAO,qBACP,OAAQ,sBACR,iBAAkB,qBAClB,OAAQ,qBACR,YAAa,6CACb,gBAAiB,4CACjB,iBAAkB,6CAClB,QAAS,sBACT,iBAAkB,8CAClB,cAAe,sBACf,sBAAuB,8CACvB,aAAc,qBAChB,GAEFC,EAAI,CAAC,GAAGD,EAAQ,GAAGD,CAAI,EAEzB,IAAIG,EAAc,GAsBlB,MApBW,CACT,MAAO,CACDD,EAAE,OACJ,OAAO,KAAKA,EAAE,KAAK,EAAE,QAAQ,SAAUE,EAAK,CACtCA,IAAQF,EAAE,OACZC,EAAcD,EAAE,MAAME,GACxB,CACD,EAEa,OAAO,WAAWD,CAAW,EAEjC,UAAY,IAChB,OAAOD,EAAE,UAAa,YACxBA,EAAE,SAAS,EAInB,CAAA,EAGQ,MACZ,CC9CA,SAASG,EAAeC,EAAqB,CAC3C,SAASC,GAAO,CACLC,GACX,CAEA,SAASA,GAAW,CACPT,EAAA,CACT,KAAM,UACN,SAAU,IAAM,CAEd,GAAG,IAAI,WAAY,CACjB,IAAKO,EACL,KAAM,IAAA,CACP,CACH,CAAA,CACD,CACH,CAEA,OAAOC,EAAK,CACd,CCjBA,eAAeE,EAAiBC,EAAeC,EAAW,GAAO,CAC/D,MAAMV,EAAS,CACb,aAAc,IACd,OAAQ,MAAA,EASV,eAAeW,EAAaC,EAAwB,CAElD,MAAMC,EAAY,IAAI,YAAY,EAAE,OAAOD,CAAc,EAGnDE,EAAa,MAAM,OAAO,OAAO,OAAO,UAAWD,CAAS,EAS3D,OANW,MAAM,KAAK,IAAI,WAAWC,CAAU,CAAC,EAIpD,IAAKC,GAAMA,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAC1C,KAAK,EAAE,CAEZ,CAEA,GAAIL,EACFN,EAAeK,CAAK,EACpBO,EAAUhB,EAAO,OAAQS,EAAOT,EAAO,YAAY,MAC9C,CACC,MAAAiB,EAAiBR,EAAM,cACvBS,EAAiB,MAAMP,EAAaM,CAAc,EAExDb,EAAec,CAAc,EAC7BF,EAAUhB,EAAO,OAAQkB,EAAgBlB,EAAO,YAAY,CAC9D,CACF"}