UNPKG

@analytics/original-source-plugin

Version:

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

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