@analytics/original-source-plugin
Version:
Save original referral source of visitor plugin for 'analytics' pkg
3 lines (2 loc) • 1.97 kB
JavaScript
import{decodeUri as r,parseReferrer as n}from"analytics-utils";import{getItem as i,COOKIE as e,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?Object.assign.bind():function(r){for(var n=1;n<arguments.length;n++){var i=arguments[n];for(var e in i)({}).hasOwnProperty.call(i,e)&&(r[e]=i[e])}return r},u.apply(null,arguments)}function g(n){var i={utmcsr:"source",utmcmd:"medium",utmccn:"campaign",utmcct:"content",utmctr:"term",utmgclid:"gclid",utmdclid:"dclid"},e=n?n.split("|"):[];return e.reduce(function(n,t,o){var a=e[o].split("="),c=a[0].split(".").pop();return i[c]?n[""+i[c]]=r(a[1]):void 0===t[c]&&(n[c]=r(a[1])),n},{})}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 n=r.config;r.instance.dispatch({type:s.SET_ORIGINAL_SOURCE,originalSource:m(n),originalLandingPage:v(n)})},reset:function(r){var n=r.instance;n.storage.removeItem(l.originalSourceKey),n.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",e);if(u){var s=g(u);if(s)return d(s,t),s}var f=c?o||document.referrer:"",m=n(f);return d(m,t),m}function d(r,n){t(n.originalSourceKey,function(r){if(a(r))return Object.keys(r).reduce(function(n,i,e){return n+(e?"|":"")+i+"="+r[i]},"")}(r),n.storage)}function v(r){void 0===r&&(r={});var n=Object.assign({},l,r),e=n.originalLandingPageKey,o={storage:n.storage},a=i(e,o);if(a)return a;var u=c?window.location.href:"";return t(e,u,o),u}export{v as getOriginalLandingPage,m as getOriginalSource,f as originalSourcePlugin};
//# sourceMappingURL=analytics-original-source.module.js.map