UNPKG

@analytics/original-source-plugin

Version:

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

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