{"version":3,"file":"utms.js","sources":["../../../dev/assets/js/utms.js"],"sourcesContent":["export default class UTMs {\n\t#utms = null;\n\t#urlParams = null;\n\t#referralDomain = null;\n\t#utmz = null;\n\t#organicSource = null;\n\n\t#getCookie(name) {\n\t\tname = name + \"=\";\n\t\tconst start = document.cookie.indexOf(name);\n\t\tif (start == -1) return false;\n\t\tlet end = document.cookie.indexOf(\";\", start);\n\t\tend == -1 && (end = document.cookie.length);\n\t\treturn document.cookie.substring(start + name.length, end);\n\t}\n\n\t#setCookie(value) {\n\t\tthis.#clearExternal();\n\t\tconst d = new Date();\n\t\td.setTime(d.getTime() + 30 * 24 * 60 * 60 * 1000);\n\t\tconst expires = \"expires=\" + d.toUTCString();\n\t\tvalue = encodeURIComponent(JSON.stringify(value));\n\t\tdocument.cookie = \"_source_information=\" + value + \";\" + expires + \";path=/\";\n\t}\n\n\t#isDirect() {\n\t\tif (document.referrer == \"\") return true;\n\t\treturn false;\n\t}\n\n\t#matchReferrer(search_pattern) {\n\t\tconst results = document.referrer.match(search_pattern);\n\t\tif (results === null) return false;\n\t\treturn results.filter((result) => result !== undefined).pop();\n\t}\n\n\t#getOrganicSource() {\n\t\tif (this.#organicSource === null) {\n\t\t\tconst searchPattern = /(www\\.(google)\\.com|www\\.(bing)\\.com|www\\.(yahoo)\\.com|(duckduckgo)\\.com|www\\.(ecosia\\.org)|www\\.(aol)\\.com|www\\.(sogou)\\.com|www\\.(qwant)\\.com|(yandex)\\.com)/i;\n\t\t\tthis.#organicSource = this.#matchReferrer(searchPattern);\n\t\t}\n\t\treturn this.#organicSource;\n\t}\n\n\t#isReferral() {\n\t\tif (this.#isDirect()) return false;\n\t\tif (document.referrer.match(/^https?:\\/\\/www\\.nathab\\.com/)) return false;\n\t\treturn true;\n\t}\n\n\t#getURLParameters() {\n\t\tif (this.#urlParams === null) {\n\t\t\tconst url = new URL(window.location.href);\n\t\t\tthis.#urlParams = url.searchParams;\n\t\t}\n\t\treturn this.#urlParams;\n\t}\n\n\t#getDomainFromUrl(input) {\n\t\tif (input == \"\") return \"direct\";\n\t\tconst url = new URL(input);\n\t\treturn url.hostname;\n\t}\n\n\t#getReferralDomain() {\n\t\tif (this.#referralDomain === null) {\n\t\t\tthis.#referralDomain = this.#getDomainFromUrl(document.referrer);\n\t\t\tif (this.#referralDomain == \"id.nathab.com\") {\n\t\t\t\tthis.#referralDomain = \"\";\n\t\t\t}\n\t\t}\n\t\treturn this.#referralDomain;\n\t}\n\n\t// this will ultimately go away\n\t#getUTMZ() {\n\t\tif (this.#utmz === null) {\n\t\t\tthis.#utmz = false;\n\t\t\tconst utmz = unescape(this.#getCookie(\"__utmz\"));\n\t\t\tif (utmz == \"\" || utmz == \"false\") return this.#utmz;\n\t\t\tconst expiration = parseInt(utmz.match(/^\\d+\\.(\\d+)/).pop()) + 30 * 24 * 3600;\n\t\t\tif (parseInt(Date.now() / 1000) > expiration) return this.#utmz;\n\t\t\tconst pattern = new RegExp(\"utm[^=]+\", \"g\"),\n\t\t\t\tresults = {},\n\t\t\t\tkeyMap = {\n\t\t\t\t\tutmccn: \"utm_campaign\",\n\t\t\t\t\tutmcct: \"utm_content\",\n\t\t\t\t\tutmcmd: \"utm_medium\",\n\t\t\t\t\tutmcsr: \"utm_source\",\n\t\t\t\t\tutmctr: \"utm_term\"\n\t\t\t\t};\n\t\t\tlet match;\n\t\t\twhile ((match = pattern.exec(utmz)) !== null) {\n\t\t\t\tresults[keyMap[match[0]]] = utmz.match(new RegExp(match[0] + \"=([^|]*)\"))[1];\n\t\t\t}\n\t\t\tif (Object.keys(results).length > 0) {\n\t\t\t\tconst gclid = this.#getCookie(\"gclid\");\n\t\t\t\tif (gclid) results[\"gclid\"] = gclid;\n\t\t\t\tconst msclkid = this.#getCookie(\"msclkid\");\n\t\t\t\tif (msclkid) results[\"msclkid\"] = msclkid;\n\t\t\t\tconst fbclid = this.#getCookie(\"fbclid\");\n\t\t\t\tif (fbclid) results[\"fbclid\"] = fbclid;\n\t\t\t\tresults[\"referring_website\"] = this.#getCookie(\"referring-website\");\n\t\t\t\tthis.#utmz = results;\n\t\t\t}\n\t\t}\n\t\treturn this.#utmz;\n\t}\n\n\t#addClickIds(o) {\n\t\tconst params = this.#getURLParameters();\n\t\tconst clickParamNames = [\"gclid\", \"msclkid\", \"fbclid\"];\n\t\tfor (let param of clickParamNames) {\n\t\t\tif (params.has(param)) {\n\t\t\t\to[param] = params.get(param);\n\t\t\t}\n\t\t}\n\t}\n\n\t#getUTM() {\n\t\tif (this.#utms === null) {\n\t\t\tthis.#utms = false;\n\t\t\tconst params = this.#getURLParameters();\n\t\t\tconst utmParams = {};\n\t\t\tconst paramNames = [\"utm_medium\", \"utm_source\", \"utm_campaign\", \"utm_content\", \"utm_term\"];\n\t\t\tfor (let param of paramNames) {\n\t\t\t\tif (params.has(param)) {\n\t\t\t\t\tutmParams[param] = params.get(param);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (Object.keys(utmParams).length > 0) {\n\t\t\t\tutmParams[\"referring_website\"] = this.#getReferralDomain();\n\t\t\t\tthis.#addClickIds(utmParams);\n\t\t\t\tthis.#utms = utmParams;\n\t\t\t}\n\t\t}\n\t\treturn this.#utms;\n\t}\n\n\t#clearExternal() {\n\t\tconst d = new Date();\n\t\td.setTime(d.getTime() - 1);\n\t\tdocument.cookie = \"__utmz=;expires=\" + d.toUTCString() + \";path=/;domain=.nathab.com\";\n\t\tdocument.cookie = \"gclid=;expires=\" + d.toUTCString() + \";path=/;domain=.nathab.com\";\n\t\tdocument.cookie = \"fbclid=;expires=\" + d.toUTCString() + \";path=/;domain=.nathab.com\";\n\t\tdocument.cookie = \"msclkid=;expires=\" + d.toUTCString() + \";path=/;domain=.nathab.com\";\n\t\tdocument.cookie = \"referring-website=;expires=\" + d.toUTCString() + \";path=/;domain=.nathab.com\";\n\t}\n\n\tget() {\n\t\treturn JSON.parse(decodeURIComponent(unescape(this.#getCookie(\"_source_information\"))));\n\t}\n\n\tclear() {\n\t\tconst d = new Date();\n\t\td.setTime(d.getTime() - 1);\n\t\tdocument.cookie = \"_source_information=;expires=\" + d.toUTCString() + \";path=/\";\n\t\tthis.#clearExternal();\n\t}\n\n\tgetCurrentDomain() {\n\t\treturn this.#getDomainFromUrl(window.location.href);\n\t}\n\n\tgetMarketo() {\n\t\tconst source = this.get();\n\t\treturn {\n\t\t\tutmsource: source.utm_source,\n\t\t\tutmmedium: source.utm_medium,\n\t\t\tutmcampaign: source.utm_campaign,\n\t\t\tutmterm: source.utm_term,\n\t\t\tutmcontent: source.utm_content,\n\t\t\tgclid: source.gclid,\n\t\t\tfbclid: source.fbclid,\n\t\t\tmsclkid: source.msclkid,\n\t\t\treferringWebsite: source.referring_website,\n\t\t\trequestedAt: window.location.href\n\t\t};\n\t}\n\n\tconstructor() {\n\t\t// if we have UTM params, always reset our cookie\n\t\tif (this.#getUTM()) {\n\t\t\treturn this.#setCookie(this.#getUTM());\n\t\t}\n\n\t\t// if we have an organic visit, always reset our cookie\n\t\tif (this.#getOrganicSource()) {\n\t\t\t//utmcsr=bing|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)\n\t\t\tconst utms = {\n\t\t\t\tutm_source: this.#getOrganicSource(),\n\t\t\t\tutm_medium: \"organic\",\n\t\t\t\tutm_campaign: \"(organic)\",\n\t\t\t\tutm_term: \"(not provided)\",\n\t\t\t\treferring_website: this.#getReferralDomain()\n\t\t\t};\n\t\t\tthis.#addClickIds(utms);\n\t\t\treturn this.#setCookie(utms);\n\t\t}\n\n\t\t// if we have a referral, always reset our cookie\n\t\t// utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)\n\t\tif (this.#isReferral()) {\n\t\t\tconst utms = {\n\t\t\t\tutm_source: this.#getReferralDomain(),\n\t\t\t\tutm_medium: \"referral\",\n\t\t\t\tutm_campaign: \"(referral)\",\n\t\t\t\treferring_website: this.#getReferralDomain()\n\t\t\t};\n\t\t\tthis.#addClickIds(utms);\n\t\t\treturn this.#setCookie(utms);\n\t\t}\n\n\t\tif (this.#getUTMZ()) {\n\t\t\treturn this.#setCookie(this.#getUTMZ());\n\t\t}\n\n\t\t// attempt to read source information our of the cookie\n\t\t// if we captured a new lead source or have one stored, just bail out\n\t\tif (this.get()) return true;\n\n\t\t// direct\n\t\tif (this.#isDirect()) {\n\t\t\t//utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)\n\t\t\tconst utms = {\n\t\t\t\tutm_source: \"(direct)\",\n\t\t\t\tutm_medium: \"(none)\",\n\t\t\t\tutm_campaign: \"(direct)\",\n\t\t\t\treferring_website: \"direct\"\n\t\t\t};\n\t\t\treturn this.#setCookie(utms);\n\t\t}\n\t}\n}\n"],"names":[],"mappings":"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"}