UNPKG

@analytics/original-source-plugin

Version:

Save original referral source of visitor plugin for 'analytics' pkg

3 lines (2 loc) 8.21 kB
var analyticsOriginalSource=function(e){function n(){return n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},n.apply(this,arguments)}var r;r=function(e,n){e.exports=function(e,n,r,t,o){for(n=n.split?n.split("."):n,t=0;t<n.length;t++)e=e?e[n[t]]:o;return e===o?r:e}},r({exports:{}});var t="undefined",o="object";"undefined"==typeof process||process;var i="undefined"!=typeof document;function a(e,n){return n.charAt(0)[e]()+n.slice(1)}"undefined"!=typeof Deno&&Deno,i&&"nodejs"===window.name||"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var u=a.bind(null,"toUpperCase"),c=a.bind(null,"toLowerCase");function l(e,n){void 0===n&&(n=!0);var r=function(e){return m(e)?u("null"):"object"==typeof e?function(e){return f(e.constructor)?e.constructor.name:null}(e):Object.prototype.toString.call(e).slice(8,-1)}(e);return n?c(r):r}function s(e,n){return typeof n===e}var f=s.bind(null,"function"),g=s.bind(null,"string"),d=s.bind(null,"undefined");function m(e){return null===e}function v(e){if(!function(e){return e&&("object"==typeof e||null!==e)}(e))return!1;for(var n=e;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function p(e,n){if("object"!=typeof n||m(n))return!1;if(n instanceof e)return!0;var r=l(new e(""));if(function(e){return e instanceof Error||g(e.message)&&e.constructor&&function(e){return"number"===l(e)&&!isNaN(e)}(e.constructor.stackTraceLimit)}(n))for(;n;){if(l(n)===r)return!0;n=Object.getPrototypeOf(n)}return!1}function b(e,n){var r=e instanceof Element||e instanceof HTMLDocument;return r&&n?function(e,n){return void 0===n&&(n=""),e&&e.nodeName===n.toUpperCase()}(e,n):r}function y(e){var n=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(n))}}function S(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function h(e){if(!i)return!1;var n=e||document.referrer;if(n){var r=window.document.location.port,t=n.split("/")[2];return r&&(t=t.replace(":"+r,"")),t!==window.location.hostname}return!1}function O(e,n,r){for(var t=n.length-1,o=0;o<t;++o){var i=n[o];if("__proto__"===i||"constructor"===i)break;i in e||(e[i]={}),e=e[i]}e[n[t]]=r}function _(e){var n=e.split(".");return n.length>1?n.slice(0,-1).join("."):e}s.bind(null,"boolean"),s.bind(null,"symbol"),p.bind(null,TypeError),p.bind(null,SyntaxError),y(b,"form"),y(b,"button"),y(b,"input"),y(b,"select");var w="q",j={"daum.net":w,"eniro.se":"search_word","naver.com":"query","yahoo.com":"p","msn.com":w,"aol.com":w,"ask.com":w,"baidu.com":"wd","yandex.com":"text","rambler.ru":"words",google:w,"bing.com":{p:w,n:"live"}},I="global",k="__global__",E=typeof self===o&&self.self===self&&self||typeof global===o&&global.global===global&&global||void 0;function P(e){return E[k][e]}function x(e,n){return E[k][e]=n}function L(e){delete E[k][e]}function A(e,n,r){var t;try{if(N(e)){var o=window[e];t=o[n].bind(o)}}catch(e){}return t||r}E[k]||(E[k]={});var C={};function N(e){if(typeof C[e]!==t)return C[e];try{var n=window[e];n.setItem(t,t),n.removeItem(t)}catch(n){return C[e]=!1}return C[e]=!0}var R="cookie",U=D(),K=q,T=q;function D(){if(void 0!==U)return U;var e="cookiecookie";try{q(e,e),U=-1!==document.cookie.indexOf(e),function(e){U?q(e,"",-1):L(e)}(e)}catch(e){U=!1}return U}function q(e,n,r,t,o,i){if("undefined"!=typeof window){var a=arguments.length>1;return!1===U&&(a?x(e,n):P(e)),a?document.cookie=e+"="+encodeURIComponent(n)+(r?"; expires="+new Date(+new Date+1e3*r).toUTCString()+(t?"; path="+t:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var F="localStorage",G=N.bind(null,"localStorage");A("localStorage","getItem",P),A("localStorage","setItem",x),A("localStorage","removeItem",L);var J="sessionStorage",z=N.bind(null,"sessionStorage");function H(e){var n=e;try{if("true"===(n=JSON.parse(e)))return!0;if("false"===n)return!1;if(v(n))return n;parseFloat(n)===n&&(n=parseFloat(n))}catch(e){}if(null!==n&&""!==n)return n}A("sessionStorage","getItem",P),A("sessionStorage","setItem",x),A("sessionStorage","removeItem",L);var M=G(),V=z(),$=D();function B(e,n){if(e){var r=W(n),t=!ee(r),o=X(r)?H(localStorage.getItem(e)):void 0;if(t&&!d(o))return o;var i=Y(r)?H(K(e)):void 0;if(t&&i)return i;var a=Z(r)?H(sessionStorage.getItem(e)):void 0;if(t&&a)return a;var u=P(e);return t?u:{localStorage:o,sessionStorage:a,cookie:i,global:u}}}function Q(e,n,r){if(e&&!d(n)){var t={},o=W(r),i=JSON.stringify(n),a=!ee(o);return X(o)&&(t[F]=re(F,n,H(localStorage.getItem(e))),localStorage.setItem(e,i),a)?t[F]:Y(o)&&(t[R]=re(R,n,H(K(e))),T(e,i),a)?t[R]:Z(o)&&(t[J]=re(J,n,H(sessionStorage.getItem(e))),sessionStorage.setItem(e,i),a)?t[J]:(t[I]=re(I,n,P(e)),x(e,n),a?t[I]:t)}}function W(e){return e?g(e)?e:e.storage:"any"}function X(e){return M&&ne(e,F)}function Y(e){return $&&ne(e,R)}function Z(e){return V&&ne(e,J)}function ee(e){return"*"===e||"all"===e}function ne(e,n){return"any"===e||e===n||ee(e)}function re(e,n,r){return{location:e,current:n,previous:r}}function te(e){var n={utmcsr:"source",utmcmd:"medium",utmccn:"campaign",utmcct:"content",utmctr:"term",utmgclid:"gclid",utmdclid:"dclid"},r=e?e.split("|"):[];return r.reduce(function(e,t,o){var i=r[o].split("="),a=i[0].split(".").pop();return n[a]?e[""+n[a]]=S(i[1]):void 0===t[a]&&(e[a]=S(i[1])),e},{})}var oe={SET_ORIGINAL_SOURCE:"setOriginalSource"},ie={storage:F,originalSourceKey:"__user_original_source",originalLandingPageKey:"__user_original_landing_page"};function ae(e){void 0===e&&(e={});var n=Object.assign({},ie,e),r=n.referrer,t=B(n.originalSourceKey,n.storage);if(t)return te(t);var o=B("__utmz",R);if(o){var a=te(o);if(a)return ue(a,n),a}var u=function(e,n){if(!i)return!1;var r={source:"(direct)",medium:"(none)",campaign:"(not set)"};e&&h(e)&&(r.referrer=e);var t=function(e){if(!e||!i)return!1;var n=function(e){return(function(e){if(!i)return null;var n=document.createElement("a");return n.setAttribute("href",e),n.hostname}(e)||"").split(".").slice(-2).join(".")}(e),r=document.createElement("a");if(r.href=e,r.hostname.indexOf("google")>-1&&(n="google"),j[n]){var t=j[n],o=new RegExp(("string"==typeof t?t:t.p)+"=.*?([^&#]*|$)","gi"),a=r.search.match(o);return{source:t.n||_(n),medium:"organic",term:(a?a[0].split("=")[1]:"")||"(not provided)"}}var u=h(e)?"referral":"internal";return{source:r.hostname,medium:u}}(e);t&&Object.keys(t).length&&(r=Object.assign({},r,t));var o=function(e){for(var n,r=Object.create(null),t=/([^&=]+)=?([^&]*)/g;n=t.exec(e);){var o=S(n[1]),i=S(n[2]);if(o)if("[]"===o.substring(o.length-2)){var a=r[o=o.substring(0,o.length-2)]||(r[o]=[]);r[o]=Array.isArray(a)?a:[],r[o].push(i)}else r[o]=""===i||i}for(var u in r){var c=u.split("[");c.length>1&&(O(r,c.map(function(e){return e.replace(/[?[\]\\ ]/g,"")}),r[u]),delete r[u])}return r}(i&&window.location.search.substring(1)),a=Object.keys(o);if(!a.length)return r;var u=a.reduce(function(e,n){return n.match(/^utm_/)&&(e[""+n.replace(/^utm_/,"")]=o[n]),n.match(/^(d|g)clid/)&&(e.source="google",e.medium=o.gclid?"cpc":"cpm",e[n]=o[n]),e},{});return Object.assign({},r,u)}(i?r||document.referrer:"");return ue(u,n),u}function ue(e,n){Q(n.originalSourceKey,function(e){if(v(e))return Object.keys(e).reduce(function(n,r,t){return n+(t?"|":"")+r+"="+e[r]},"")}(e),n.storage)}function ce(e){void 0===e&&(e={});var n=Object.assign({},ie,e),r=n.originalLandingPageKey,t={storage:n.storage},o=B(r,t);if(o)return o;var a=i?window.location.href:"";return Q(r,a,t),a}return e.getOriginalLandingPage=ce,e.getOriginalSource=ae,e.originalSourcePlugin=function(e){return void 0===e&&(e={}),{name:"original-source",EVENTS:oe,config:n({},ie,e),bootstrap:function(e){var n=e.config;e.instance.dispatch({type:oe.SET_ORIGINAL_SOURCE,originalSource:ae(n),originalLandingPage:ce(n)})},reset:function(e){var n=e.instance;n.storage.removeItem(ie.originalSourceKey),n.storage.removeItem(ie.originalLandingPageKey)}}},e}({}); //# sourceMappingURL=original-source-plugin.js.map