UNPKG

analytics-utils

Version:

Analytics utility functions used by 'analytics' module

3 lines (2 loc) 4.4 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("dlv"),require("@analytics/type-utils")):"function"==typeof define&&define.amd?define(["exports","dlv","@analytics/type-utils"],r):r((e||self).analyticUtil={},e.dlv,e.typeUtils)}(this,function(e,r,t){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(r);function o(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function a(e){if(!t.isBrowser)return!1;var r=e||document.referrer;if(r){var n=window.document.location.port,i=r.split("/")[2];return n&&(i=i.replace(":"+n,"")),i!==window.location.hostname}return!1}function u(e,r){var t=(e.split("?")||[,])[1];if(!t||-1===t.indexOf(r))return e;var n=new RegExp("(\\&|\\?)"+r+'([_A-Za-z0-9"+=.\\/\\-@%]+)',"g"),i=("?"+t).replace(n,"").replace(/^&/,"?");return e.replace("?"+t,i)}function c(e){return function(e){for(var r,t=Object.create(null),n=/([^&=]+)=?([^&]*)/g;r=n.exec(e);){var i=o(r[1]),a=o(r[2]);if(i)if("[]"===i.substring(i.length-2)){var u=t[i=i.substring(0,i.length-2)]||(t[i]=[]);t[i]=Array.isArray(u)?u:[],t[i].push(a)}else t[i]=""===a||a}for(var c in t){var l=c.split("[");l.length>1&&(s(t,l.map(function(e){return e.replace(/[?[\]\\ ]/g,"")}),t[c]),delete t[c])}return t}(function(e){if(e){var r=e.match(/\?(.*)/);return r&&r[1]?r[1].split("#")[0]:""}return t.isBrowser&&window.location.search.substring(1)}(e))}function s(e,r,t){for(var n=r.length-1,i=0;i<n;++i){var o=r[i];if("__proto__"===o||"constructor"===o)break;o in e||(e[o]={}),e=e[o]}e[r[n]]=t}function l(e){if(!t.isBrowser)return null;var r=document.createElement("a");return r.setAttribute("href",e),r.hostname}function f(e){return(l(e)||"").split(".").slice(-2).join(".")}function m(e){var r=e.split(".");return r.length>1?r.slice(0,-1).join("."):e}var d={trimTld:m,getDomainBase:f,getDomainHost:l},p="google",g="q",x={"daum.net":g,"eniro.se":"search_word","naver.com":"query","yahoo.com":"p","msn.com":g,"aol.com":g,"ask.com":g,"baidu.com":"wd","yandex.com":"text","rambler.ru":"words",google:g,"bing.com":{p:g,n:"live"}};Object.defineProperty(e,"dotProp",{enumerable:!0,get:function(){return i.default}}),e.decodeUri=o,e.getBrowserLocale=function(){if(t.isBrowser){var e=navigator,r=e.languages;return e.userLanguage||(r&&r.length?r[0]:e.language)}},e.getTimeZone=function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}},e.isExternalReferrer=a,e.isScriptLoaded=function(e){if(!t.isBrowser)return!0;var r=document.getElementsByTagName("script");return!!Object.keys(r).filter(function(n){var i=r[n].src;return t.isString(e)?-1!==i.indexOf(e):!!t.isRegex(e)&&i.match(e)}).length},e.paramsClean=u,e.paramsGet=function(e,r){return o((RegExp(e+"=(.+?)(&|$)").exec(r)||[,""])[1])},e.paramsParse=c,e.paramsRemove=function(e,r){return t.isBrowser?new Promise(function(t,n){if(window.history&&window.history.replaceState){var i=window.location.href,o=u(i,e);i!==o&&history.replaceState({},"",o)}return r&&r(),t()}):Promise.resolve()},e.parseReferrer=function(e,r){if(!t.isBrowser)return!1;var n={source:"(direct)",medium:"(none)",campaign:"(not set)"};e&&a(e)&&(n.referrer=e);var i=function(e){if(!e||!t.isBrowser)return!1;var r=f(e),n=document.createElement("a");if(n.href=e,n.hostname.indexOf(p)>-1&&(r=p),x[r]){var i=x[r],o=new RegExp(("string"==typeof i?i:i.p)+"=.*?([^&#]*|$)","gi"),u=n.search.match(o);return{source:i.n||m(r),medium:"organic",term:(u?u[0].split("=")[1]:"")||"(not provided)"}}var c=a(e)?"referral":"internal";return{source:n.hostname,medium:c}}(e);i&&Object.keys(i).length&&(n=Object.assign({},n,i));var o=c(r),u=Object.keys(o);if(!u.length)return n;var s=u.reduce(function(e,r){return r.match(/^utm_/)&&(e[""+r.replace(/^utm_/,"")]=o[r]),r.match(/^(d|g)clid/)&&(e.source=p,e.medium=o.gclid?"cpc":"cpm",e[r]=o[r]),e},{});return Object.assign({},n,s)},e.throttle=function(e,r){var t,n,i,o=null,a=0,u=function(){a=new Date,o=null,i=e.apply(t,n)};return function(){var c=new Date;a||(a=c);var s=r-(c-a);return t=this,n=arguments,s<=0?(clearTimeout(o),o=null,a=c,i=e.apply(t,n)):o||(o=setTimeout(u,s)),i}},e.url=d,e.uuid=function(){for(var e="",r=0,t=4294967295*Math.random()|0;r++<36;){var n="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[r-1],i=15&t;e+="-"==n||"4"==n?n:("x"==n?i:3&i|8).toString(16),t=r%8==0?4294967295*Math.random()|0:t>>4}return e}}); //# sourceMappingURL=analytics-utils.umd.js.map