UNPKG

@analytics/original-source-plugin

Version:

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

3 lines (2 loc) 1.96 kB
import{decodeUri as r,parseReferrer as e}from"analytics-utils";import{getItem as i,COOKIE as n,setItem as t,LOCAL_STORAGE as o}from"@analytics/storage-utils";import{isObject as a,isBrowser as c}from"@analytics/type-utils";function u(){return u=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(r[n]=i[n])}return r},u.apply(this,arguments)}function g(e){var i={utmcsr:"source",utmcmd:"medium",utmccn:"campaign",utmcct:"content",utmctr:"term",utmgclid:"gclid",utmdclid:"dclid"},n=e?e.split("|"):[];return n.reduce(function(e,t,o){var a=n[o].split("="),c=a[0].split(".").pop();return i[c]?e[""+i[c]]=r(a[1]):void 0===t[c]&&(e[c]=r(a[1])),e},{})}var s={SET_ORIGINAL_SOURCE:"setOriginalSource"},l={storage:o,originalSourceKey:"__user_original_source",originalLandingPageKey:"__user_original_landing_page"};function f(r){return void 0===r&&(r={}),{name:"original-source",EVENTS:s,config:u({},l,r),bootstrap:function(r){var e=r.config;r.instance.dispatch({type:s.SET_ORIGINAL_SOURCE,originalSource:m(e),originalLandingPage:p(e)})},reset:function(r){var e=r.instance;e.storage.removeItem(l.originalSourceKey),e.storage.removeItem(l.originalLandingPageKey)}}}function m(r){void 0===r&&(r={});var t=Object.assign({},l,r),o=t.referrer,a=i(t.originalSourceKey,t.storage);if(a)return g(a);var u=i("__utmz",n);if(u){var s=g(u);if(s)return d(s,t),s}var f=c?o||document.referrer:"",m=e(f);return d(m,t),m}function d(r,e){t(e.originalSourceKey,function(r){if(a(r))return Object.keys(r).reduce(function(e,i,n){return e+(n?"|":"")+i+"="+r[i]},"")}(r),e.storage)}function p(r){void 0===r&&(r={});var e=Object.assign({},l,r),n=e.originalLandingPageKey,o={storage:e.storage},a=i(n,o);if(a)return a;var u=c?window.location.href:"";return t(n,u,o),u}export{p as getOriginalLandingPage,m as getOriginalSource,f as originalSourcePlugin}; //# sourceMappingURL=analytics-original-source.module.js.map